Cron Expression Explainer
See what a cron schedule means in plain English and when it runs next.
How to use Cron Expression Explainer
- Type a cron expression, or pick a common schedule to start from.
- Read the plain-English meaning and the breakdown of the five fields.
- Check the next run times in your time zone or UTC, then copy the expression.
How it works
A standard cron expression has five fields: minute (0–59), hour (0–23), day of the month (1–31), month (1–12 or JAN–DEC) and day of the week (0–7 or SUN–SAT, where 0 and 7 are both Sunday). In each field * means every value, a-b a range, a,b a list and */n every n-th value. So */15 9-17 * * 1-5 runs every 15 minutes during the hours 9 to 17, Monday to Friday.
One rule surprises people: when both day-of-month and day-of-week are restricted, classic cron runs when either matches. 0 0 13 * 5 runs on the 13th of every month and also on every Friday, not only on Friday the 13th. The tool applies this rule and points it out.
Next run times are calculated from now by walking the calendar, so schedules that never fire, such as 31 February, are detected. Servers, containers and CI systems (GitHub Actions, Kubernetes) usually evaluate cron in UTC; switch the display to UTC to see what they will do.
Example
30 9 * * 1-5 → “At 09:30, Monday to Friday.” 0 */6 * * * → “Every 6 hours (00:00, 06:00, 12:00 and 18:00).”
Frequently asked questions
What is the cron expression for every 5 minutes?
*/5 * * * *. Every 15 minutes is */15 * * * *, every 30 minutes */30 * * * *, and every hour 0 * * * *.
How do I run a job every weekday at 9 am?
0 9 * * 1-5: minute 0, hour 9, any day of the month, any month, Monday to Friday.
Why does my expression have six or seven fields?
Quartz and Spring add a seconds field at the start (and sometimes a year at the end). Standard cron, used by Linux crontab, Kubernetes and GitHub Actions, has five. Remove the seconds field to analyse it here.
Which time zone does cron use?
The time zone of the machine or service running it. Many servers and most cloud schedulers use UTC. Use the UTC view to check.
Does */n always mean "every n"?
It means every n-th value starting from the field’s minimum, resetting each cycle. */7 in the minute field runs at 0, 7, … 56 and then again at 0, so the last gap is 4 minutes, not 7.
Limitations
- Standard 5-field cron only: no seconds or year fields, and no Quartz extensions (L, W, #, ?).
- The Vixie-cron quirk where a day field starting with * changes the either/or rule is not modelled.
- Daylight-saving changes can skip or repeat a local time; the next-run list follows your device’s calendar.
Last reviewed November 9, 2026. How we build and test tools.