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 value
  • 5 — exactly 5
  • 1-5 — range
  • */15 — every 15 units
  • 1,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

All learn articles