Cron Expression Explainer
Translate a cron expression into plain English and preview when it will actually run — entirely in your browser.
In plain English
Runs at 09:00, on Monday, Tuesday, Wednesday, Thursday and Friday.
| Field | Value | Allowed range | Matches |
|---|---|---|---|
| Minute | 0 | 0–59 | 1 value |
| Hour | 9 | 0–23 | 1 value |
| Day of month | * | 1–31 | 31 values |
| Month | * | 1–12 | 12 values |
| Day of week | 1-5 | 0–6 (Sunday = 0) | 5 values |
Next 8 runs (your local time)
Calculating…
- Five fields, in order: minute, hour, day of month, month, day of week.
*means every value,1-5a range,1,3,5a list,*/15a step, and0-30/10a step within a range.- Names work too:
JAN–DECfor months andSUN–SATfor weekdays. - Both
0and7mean Sunday in the day-of-week field. - Shorthands are accepted:
@hourly,@daily,@weekly,@monthly,@yearly.
Your Data Never Leaves Your Device
Every tool runs entirely in your browser. Nothing you type is uploaded, stored, or logged on our servers.
The Cron Expression Explainer turns a five-field cron schedule into a sentence, breaks out each field with its allowed range, and lists the next run times so you can check the schedule before deploying it. Ranges, lists, steps, step-within-range, month and weekday names, and the @daily-style shorthands are all understood.
It also flags the mistake that catches everyone: when day-of-month and day-of-week are both restricted, cron treats them as an OR, so 0 0 1 * 1 fires on the 1st of the month and on every Monday. Run times are computed in your browser's local time zone, which is rarely the server's — worth confirming before you trust a schedule that matters. Parsing and scheduling both happen client-side; nothing is sent anywhere.
FAQ
In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, Sunday being 0). Each field accepts a value, a range, a list, a step, or * for every value.
* matches every value in the field, so * in the minute field runs every minute. */5 is a step — it runs on every fifth value starting from the lowest, so 0, 5, 10 and so on. You can also step within a range, as in 0-30/10.
Almost always because both day-of-month and day-of-week are restricted. Cron ORs those two fields rather than ANDing them, so "0 0 1 * 1" runs on the 1st of the month AND on every Monday. Leave one of them as * unless you want the union.
Both. Standard cron uses 0, and most implementations also accept 7 for compatibility. This tool normalises 7 to 0 so the description and the run times agree either way.
Your browser's local time zone. Your server almost certainly runs on a different one — usually UTC — so check the server's zone before trusting a schedule that matters, especially around daylight-saving changes.
Yes. @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly are expanded to their five-field equivalents before being explained. Vixie cron's @reboot has no schedule, so it is not supported.