How to Read a Cron Expression (the * * * * * Mystery, Solved)
0 9 * * 1-5 looks like a cat walked across the keyboard, but it's a precise schedule. Cron expressions power scheduled jobs everywhere — backups, emails, reports — and reading them is a five-minute skill.
The five fields
A standard cron line has five space-separated fields, in order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where 0 and 7 both mean Sunday). An asterisk * means "every". Paste any expression into the cron expression explainer to get a plain-English description.
Reading the example
0 9 * * 1-5 = minute 0, hour 9, any day of month, any month, weekdays 1–5 (Mon–Fri) → "at 09:00, Monday through Friday". Once you see the field order, every expression unlocks.
The special characters
* every, , a list (1,15), - a range (9-17), and / a step (*/15 means every 15 units). So */15 9-17 * * * is "every 15 minutes between 9am and 5pm".
Common patterns worth memorizing
0 0 * * * daily at midnight · 0 * * * * every hour on the hour · */5 * * * * every 5 minutes · 0 0 1 * * first of every month · 0 0 * * 0 every Sunday midnight.
Test before you trust
A wrong cron line can run a job 60× too often or never. Always decode your expression with the explainer before deploying it — "every minute" instead of "every day" is a classic, expensive mistake.