Cron Cheat Sheet
The five fields, the special characters that combine them, and the shorthand presets most schedulers accept.
A cron expression is five space-separated fields — minute, hour, day of month, month, day of week — each saying when that field must match for the job to run. '0 9 * * 1' means minute 0, hour 9, any day of month, any month, only on Monday: every Monday at 09:00.
Special characters combine values within a field: a comma lists several, a hyphen spans a range, and a slash steps through a range. Most schedulers also accept shorthand presets like @daily so you don't have to spell out the five fields by hand.
The five fields
| Token | Meaning | Example |
|---|---|---|
minute | 0–59 | 30 * * * * → at minute 30 |
hour | 0–23 | 0 9 * * * → at 09:00 |
day of month | 1–31 | 0 0 1 * * → the 1st of the month |
month | 1–12 | 0 0 1 1 * → January 1st |
day of week | 0–6, Sun=0 | 0 9 * * 1 → every Monday |
Special characters
| Token | Meaning | Example |
|---|---|---|
* | Any value | * * * * * — every minute |
, | List of values | 1,15,30 * * * * |
- | Range of values | 9-17 * * * * |
/ | Step value | */15 * * * * — every 15 minutes |
? | No specific value (day fields, some schedulers) | 0 0 ? * MON |
Common presets
| Token | Meaning | Example |
|---|---|---|
@yearly / @annually | Once a year | 0 0 1 1 * |
@monthly | Once a month | 0 0 1 * * |
@weekly | Once a week | 0 0 * * 0 |
@daily / @midnight | Once a day | 0 0 * * * |
@hourly | Once an hour | 0 * * * * |
@reboot | Once, at startup | no fixed schedule |