Cron Expression for Every 15 Minutes (and Every Common Interval)
Cron expressions look cryptic until you understand the five-field structure. Once you do, writing any schedule becomes straightforward. Here's the pattern for every 15 minutes, plus a reference table for every common interval.
The cron expression for every 15 minutes
*/15 * * * *
That's it. This runs at minutes 0, 15, 30, and 45 of every hour, every day.
Understanding the five fields
A standard cron expression has five fields separated by spaces:
┌───────────── minute (0–59)
│ ┌─────────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌─────── month (1–12)
│ │ │ │ ┌───── day of week (0–7, where 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
The special characters:
*— any value (every minute, every hour, etc.)*/n— every n units (every 15 minutes, every 2 hours, etc.)n,m— specific values (run at minute 0 and 30)n-m— range (run Monday through Friday:1-5)n— exact value (run at 3:00 AM:0 3 * * *)
Common schedules reference table
| Schedule | Expression | Description |
|---|---|---|
| Every minute | * * * * * |
Every single minute |
| Every 5 minutes | */5 * * * * |
0, 5, 10, 15 … 55 |
| Every 10 minutes | */10 * * * * |
0, 10, 20, 30, 40, 50 |
| Every 15 minutes | */15 * * * * |
0, 15, 30, 45 |
| Every 30 minutes | */30 * * * * |
0, 30 |
| Every hour | 0 * * * * |
At minute 0 of every hour |
| Every 2 hours | 0 */2 * * * |
00:00, 02:00, 04:00 … |
| Every 6 hours | 0 */6 * * * |
00:00, 06:00, 12:00, 18:00 |
| Every day at midnight | 0 0 * * * |
00:00 every day |
| Every day at 3 AM | 0 3 * * * |
03:00 every day |
| Every Monday at 9 AM | 0 9 * * 1 |
Weekly on Monday |
| Weekdays at 9 AM | 0 9 * * 1-5 |
Mon–Fri at 09:00 |
| First day of month | 0 0 1 * * |
Midnight on the 1st |
| Every Sunday at midnight | 0 0 * * 0 |
Weekly on Sunday |
Practical examples
Run a backup every night at 2 AM:
0 2 * * *
Send a weekly digest every Monday at 8 AM:
0 8 * * 1
Poll an API every 5 minutes during business hours (9 AM–5 PM, weekdays):
*/5 9-17 * * 1-5
Run a report on the first of every month at 6 AM:
0 6 1 * *
Run on the 1st and 15th of every month:
0 0 1,15 * *
The 6-field variant (with seconds)
Some systems (AWS EventBridge, Spring, Quartz) use a 6-field format that adds seconds at the beginning:
┌─────────── second (0–59)
│ ┌───────── minute (0–59)
│ │ ┌─────── hour (0–23)
│ │ │ ┌───── day of month
│ │ │ │ ┌─── month
│ │ │ │ │ ┌─ day of week
│ │ │ │ │ │
* * * * * *
"Every 15 minutes" in 6-field format:
0 */15 * * * *
Check your platform's documentation to know which format it expects.
Timezone gotchas
Cron runs in the timezone of the server unless you configure otherwise. A job at 0 9 * * * runs at 9 AM in whatever timezone the cron daemon uses — which is often UTC on cloud servers.
If you need the job to run at 9 AM in a specific timezone, you have two options:
- Convert your local time to UTC and write the expression in UTC.
- Use a scheduler that supports timezone-aware crons (GitHub Actions
cron:, AWS EventBridge, Kubernetes CronJob with.spec.timeZone).
New York (UTC-5 in winter): 9 AM local = 14:00 UTC
0 14 * * *
Testing cron expressions
Before deploying, always test the expression against a few real dates. Paste it into a cron expression parser to see the next 5–10 fire times and confirm they match your intent. Off-by-one errors in day-of-week fields are the most common source of surprises.
Key takeaways
- Every 15 minutes:
*/15 * * * *— runs at :00, :15, :30, :45 of every hour. - The five fields are: minute, hour, day-of-month, month, day-of-week.
*/nmeans "every n intervals";*means "every."- Cloud systems often use UTC — convert your intended local time before writing the expression.
- Some platforms use 6 fields (with seconds); check the docs before using.