Cron Expression Parser
Explain a cron expression in plain English and list its next run times.
How to use the cron expression parser
- Type or paste a cron expression, or pick a preset such as Weekdays at 9:00.
- Read the plain-English description and the breakdown of each field below it.
- Check the Next 10 runs list. Switch between Local (your browser's time zone) and UTC to see when the job fires on a server that runs in UTC.
- Use Copy to copy the run times, one per line.
Example
0 9 * * 1-5 means minute 0, hour 9, any day of the month, any month, Monday to Friday. It is described as "At 09:00, Monday through Friday". Starting from Thursday 1 January 2026 in UTC, the next runs are Thursday 1 January 09:00, Friday 2 January 09:00 and then Monday 5 January 09:00, skipping the weekend.
Frequently asked questions
Which cron syntax is supported?
The standard five fields (minute, hour, day of month, month, day of week) with *, lists (1,15), ranges (1-5), steps (*/10, 0-30/5), month and weekday names (JAN, MON) and both 0 and 7 for Sunday. A sixth field at the start is read as seconds, and the macros @yearly, @annually, @monthly,@weekly, @daily, @midnight and @hourly work too.
What happens when both day of month and day of week are set?
Like Vixie cron and most Linux crontabs, the job runs when either field matches, so0 0 13 * 5 runs on every 13th and on every Friday. If one of the two fields starts with*, both must match.
How are daylight saving changes handled?
Run times follow the wall clock of the chosen time zone. When clocks spring forward, a time inside the skipped hour (such as 02:30) does not exist and is skipped that day. When clocks fall back, a time that happens twice runs once, unless the hour field is *, in which case the job runs in both hours. Everything is calculated in your browser; the expression is never sent anywhere.