Cron Expression Generator & Explainer
Build a cron schedule or paste one in. You get its meaning in plain English and the next 5 times it will run, in your time zone or in UTC.
Next 5 runs
Presets
Cron syntax cheat sheet
Special characters
*- every value (every minute, every hour…)
,- a list:
1,15= the 1st and the 15th -- a range:
1-5= Monday to Friday /- a step:
*/10= every 10th;5/15= 5, 20, 35, 50 @daily- shortcuts:
@hourly,@daily,@weekly,@monthly,@yearly,@reboot
Examples (tap to try)
How to use the cron expression generator
- Type or paste a cron expression into the box, for example
0 9 * * 1-5. A whole crontab line with a command works too, and so do@daily-style shortcuts. - Or build one: pick a preset, or edit the five fields (minute, hour, day of month, month, day of week) and the expression updates as you type.
- Read the plain-English meaning and the next 5 run times. Switch between your time zone and UTC to match your server.
- Press Copy and paste the expression into
crontab -e, a GitHub Actionsschedule, a Kubernetes CronJob or node-cron.
Everything runs in your browser. Nothing you paste or type is uploaded or saved.
Frequently asked questions
What do the five fields of a cron expression mean?
In order: 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). Each field takes * for "every", a number, a list like 1,15, a range like 1-5 or a step like */10. So 30 2 * * 0 means 02:30 every Sunday. Quartz and Spring add a seconds field at the start; standard crontab does not.
Which time zone does a cron job run in?
The server's time zone, not yours. Many cloud servers and GitHub Actions use UTC, so a job set for 0 9 * * * runs at 09:00 UTC, which is 14:30 in India (IST is UTC+5:30). Check the server with the date command, and use the UTC option above to see the run times the way the server sees them.
Why does my job run more often when I set both day of month and day of week?
Because cron treats them as OR when both are restricted. 0 0 1 * 1 runs on the 1st of every month AND on every Monday, not only on Mondays that fall on the 1st. To run on the first Monday of the month, schedule 0 0 1-7 * * (the first seven days) and have your script exit unless today is a Monday.