Cron expressions for humans
Published: 2026-07-20
How five-field cron syntax maps to minutes, hours, days, and months — plus common patterns for backups, reports, and jobs.
Cron is the classic Unix schedule format: a line of five fields (minute, hour, day-of-month, month, day-of-week) that tells a scheduler when to run a command. Cloud consoles, Kubernetes CronJob, and CI schedulers often use the same idea with small dialect differences.
The five fields (standard cron)
* * * * *
| | | | |
| | | | +-- day of week (0-7, 0 and 7 = Sunday)
| | | +---- month (1-12)
| | +------ day of month (1-31)
| +-------- hour (0-23)
+---------- minute (0-59)
Each field can be:
*— every value5— exactly 51-5— range*/15— every 15 units1,15,30— list
Patterns you will see in production
| Expression | Meaning |
|---|---|
0 * * * * |
Top of every hour |
0 0 * * * |
Daily at midnight |
0 0 * * 0 |
Weekly on Sunday midnight |
0 9 * * 1-5 |
Weekdays at 09:00 |
*/5 * * * * |
Every 5 minutes |
Always confirm whether your platform uses UTC or local time. Kubernetes and many SaaS schedulers default to UTC.
Day-of-month vs day-of-week
When both day-of-month and day-of-week are restricted (not *), behavior varies by implementation — some require either field to match, others require both. When in doubt, test with your scheduler’s docs or a generator that shows next run times.
Quartz and six-field variants
Java Quartz and some tools add a seconds field at the start (0 0 12 * * ?). AWS EventBridge uses six fields with different wildcards. If a job never fires, the first debugging step is confirming which dialect you are editing.
Try it locally
Use the Cron Generator to build expressions from a visual grid or raw text, see human-readable explanations, and preview upcoming run times — all in your browser.
Related reading
- Unix timestamps: seconds vs milliseconds — cron logs and
expclaims often use epoch seconds.