Cron Expression Explainer — Next Run Times
Cron expressions are short, powerful and famously hard to read. A line like 0 9 * * MON controls when a backup, a report or a website job runs, yet one wrong field can mean a job fires at midnight instead of nine in the morning, or every minute instead of once a week. This free explainer translates any five-field cron schedule into plain English — for example, “At 09:00, on Mondays” — and lists its next five run times, so you can check exactly what a schedule will do before you save it. Everything is calculated in your browser with plain JavaScript: no sign-up, no upload, and no server involved. It supports stars, ranges such as 1-5, lists such as 1,15, steps such as */15, and names such as MON-FRI and JAN-DEC.
Field ranges: minute 0–59, hour 0–23, day of month 1–31, month 1–12 or JAN–DEC, day of week 0–6 (0 = Sunday) or SUN–SAT. A six-field expression with a leading seconds value is not supported — drop the seconds field.
Common examples:
Privacy: your expression never leaves your browser. The explanation runs entirely on your device.
How to Use
- Type or paste a cron expression. Enter five fields separated by spaces, in the order minute, hour, day of the month, month, day of the week. The box already contains
0 9 * * MONas a starting point, or click one of the example buttons to load a common schedule. - Click Explain Cron Expression. The tool checks each field and reports any mistake — for example a minute of 75, outside the allowed 0–59 — in plain language.
- Read the plain-English explanation. The result spells out the schedule in words, so you can see at a glance whether it means what you intended.
- Check the next five run times. The list shows the next five dates and times the job will run, starting from now. If the first date surprises you, fix the expression and explain it again.
Worked Example
Take 0 9 * * MON: minute 0, hour 9, any day of the month, any month, weekday Monday — so the explanation is “At 09:00, on Mondays”. Change the last field to a star, 0 9 * * *, and it becomes “Every day at 09:00”. Counting forward from Saturday 7 November 2026 at 10:00, the first run of 0 9 * * MON is Mon 2026-11-09 09:00, followed by Mon 2026-11-16, Mon 2026-11-23, Mon 2026-11-30 and Mon 2026-12-07, all at 09:00. For the daily version 0 9 * * *, the next run from the same Saturday is the very next morning, Sunday 8 November 2026 at 09:00, then each following day at 09:00. Paste either expression into the tool and you will see exactly these dates.
Why Cron Expressions Are Easy to Get Wrong
The most common mistake is mixing up the field order: the first field is the minute, not the hour, so 9 0 * * * means 00:09, not 09:00. The second classic mistake is the day-of-month and day-of-week rule: when both fields are restricted, most cron systems run the job when either one matches, not when both match, so 0 9 15 * MON runs on the 15th of the month and on every Monday. Finally, cron uses the server’s local time zone, so 09:00 on the server may not be 09:00 where you are. Checking the next five run times here catches these errors before they cost you a missed backup or a report sent at 3 a.m.
Tips for Writing Reliable Cron Schedules
Start from a schedule you understand and change one field at a time, re-checking the next run times after each change. Prefer day names such as MON-FRI over numbers, because they are harder to misread, and write ranges the long way — 1-5 — rather than relying on memory for which number means which day. Keep weekday jobs inside business hours with a range such as 9-17, and avoid running heavy jobs exactly on the hour, when every other job is also starting; a minute such as 7 or 23 spreads the load. For a monthly job, use the day-of-month field with a star for the weekday, for example 0 6 1 * * for the first of the month at 06:00, and never restrict both day fields unless you want the either-matches behaviour above. Always test a new schedule here first.
Frequently Asked Questions
What is a cron expression?
A cron expression is a short string of five fields — minute, hour, day of the month, month, and day of the week — that describes when a job should run. For example, 0 9 * * MON means run at 09:00 on Mondays. Schedulers read the expression and run the job at every matching time.
What does the star (*) mean in a cron expression?
A star means every possible value for that field. A star in the minute field means every minute, a star in the month field means every month, and so on. The expression 0 9 * * * therefore means 09:00 every day, because the day, month and weekday fields are all stars.
What does */15 mean in a cron expression?
A step value such as */15 means every 15th value, starting from the first allowed value. In the minute field, */15 means minutes 0, 15, 30 and 45, so the job runs four times an hour. A range with a step, such as 9-17/2 in the hour field, means every second hour from 09:00 to 17:00.
Are my cron expressions uploaded to a server?
No. The explanation and the next run times are calculated entirely in your browser with plain JavaScript. Nothing you type is sent to a server, stored or seen by anyone else.
Does this tool support seconds in a cron expression?
No. This tool uses the standard five-field format — minute, hour, day of the month, month, day of the week — which is what most Unix cron systems use. If your expression has six fields, the first one is usually seconds; remove it and explain the remaining five fields here.