Cron Expression Explainer
Turn any cron schedule into plain English and preview its next 5 runs in your local time.
Five fields: minute, hour, day of month, month, day of week. Names like MON and JAN work.
Every 15 minutes between 09:00 and 17:59, on Monday through Friday.
- Minute
- */15
- Hour
- 9-17
- Day (month)
- *
- Month
- *
- Day (week)
- MON-FRI
Next 5 runs
Calculating…
Everything runs in your browser. Nothing you type is sent anywhere.
How cron expressions work
A standard cron expression has five fields separated by spaces. Each field restricts when the job may run; the job fires every minute that matches all of them.
┌───────────── minute (0–59)
│ ┌─────────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌─────── month (1–12 or JAN–DEC)
│ │ │ │ ┌───── day of week (0–7 or SUN–SAT; 0 and 7 are Sunday)
│ │ │ │ │
* * * * * Special characters
*: any value (“every minute”, “every hour”, …).*/n: every nth value, e.g.*/15in the minute field is every 15 minutes.a-b: an inclusive range, e.g.1-5is Monday through Friday in the day-of-week field.a,b,c: a list, e.g.0,30runs on the hour and half hour.a-b/n: every nth value within a range.- Macros:
@hourly,@daily,@weekly,@monthly,@yearly.
The day-of-month / day-of-week gotcha
If both the day-of-month and day-of-week fields are restricted (neither starts with
*), cron runs when either matches, not both. So 0 0 13 * 5 runs at
midnight on every 13th and every Friday, not only on Friday the 13th.
Common examples
0 * * * *: at the start of every hour.30 2 * * *: every day at 02:30.0 9 * * 1-5: weekdays at 09:00.0 0 1 * *: midnight on the first of every month.
Cron runs in the server's time zone (often UTC). The run times above are shown in your browser's local time zone. If a scheduled job posts to a webhook, you can debug the payload with the Webhook Payload Inspector.