Cron Expression Explainer
Read any cron expression in plain language, field by field, and see exactly when it will run next.
Cron Expression Explainer - What Your Crontab Line Really Means
Paste a cron expression and read it as a plain sentence, see each of the five fields on its own, and check the next run times in your own time zone or in UTC. It catches the mistakes that make a job run at the wrong time: a value out of range, a six-field expression copied from Quartz, or a schedule that can never happen, such as 31 February.
Cron is the scheduler behind Linux and macOS crontabs, and its syntax is also used by Kubernetes CronJobs, GitHub Actions, GitLab CI and most cloud schedulers. The syntax is compact and easy to misread; a quick check here saves a job that runs every minute instead of once a day.
How to use it
- Type or paste a cron expression, or pick one from Common schedules.
- Read the description and the five fields below it.
- Check the Next runs list; switch Time zone between This device and UTC.
- If a field is outlined in red, the message above it says what is wrong.
The five fields
| Field | Allowed values | Example | Meaning |
|---|---|---|---|
| Minute | 0–59 | 30 | At minute 30 |
| Hour | 0–23 | 9-17 | From 09:00 to 17:59 |
| Day of month | 1–31 | 1,15 | On the 1st and 15th |
| Month | 1–12 or JAN–DEC | */3 | January, April, July, October |
| Day of week | 0–6 or SUN–SAT (7 = Sunday) | 1-5 | Monday to Friday |
Special characters
*means every value of the field.,separates a list:1,15,30.-gives a range:9-17./gives a step:*/15is every 15th value from the lowest,5/15every 15th from 5.- Macros replace the whole line:
@hourly,@daily,@weekly,@monthly,@yearly.
The day-of-month and day-of-week trap
When both day fields are restricted, standard cron runs the job on days that match either of them, not both. 0 0 1 * 1 runs at midnight on the 1st of every month and also every Monday. People usually expect "Mondays that fall on the 1st", which plain cron cannot express. The tool shows a note whenever both fields are set, and the next runs list makes the real behaviour obvious.
Time zones
Cron uses the time zone of the machine or service that runs it. Servers and cloud schedulers such as GitHub Actions usually run in UTC, so a job written for 09:00 may fire at 09:00 UTC, which is a different hour in most places, and it shifts by an hour when daylight saving time starts or ends where you live. Compare the next runs in This device and UTC to see the difference before you deploy.
What this tool does not support
- Seconds: six- and seven-field expressions from Quartz and Spring are reported rather than misread.
- Non-standard extensions such as
L,Wand#, which some schedulers add. @reboot, which runs once at start-up and has no next time.
Related tools
To turn a run time into a Unix timestamp or back, use the timestamp converter. The task pages open this tool with a common schedule: every 5 minutes, every hour and every day at midnight.