Cron expression parser
Five fields: minute, hour, day of month, month, day of week.
Field by field
| Field | Written | Means |
|---|
Next runs
| # | Runs at |
|---|
Times are shown in your device time zone. The server that runs the job may be in another one.
What this tool does
Cron syntax is compact and easy to misread, and the cost of a misreading is a job that runs at the wrong time for months before anyone notices. This page translates the line back into a sentence and, more usefully, shows the actual dates it will fire.
How to use it
- 1 Paste your cron line, or start from one of the presets.
- 2 Read the sentence and check each field one by one.
- 3 Confirm it against the list of next runs - that is where mistakes show.
The five fields
Always in this order, always separated by spaces. Each takes a number, a list like 1,15, a range like 9-17, a step like */5, or a star meaning every value.
| # | Field | Allowed | Note |
|---|---|---|---|
| 1 | Minute | 0-59 | — |
| 2 | Hour | 0-23 | — |
| 3 | Day of month | 1-31 | See the day rule below |
| 4 | Month | 1-12 | JAN-DEC also accepted |
| 5 | Day of week | 0-7 | 0 and 7 are both Sunday; SUN-SAT accepted |
The day-of-month trap
When both the day-of-month and day-of-week fields are set to something other than a star, cron runs the job if either matches, not both. So "0 0 1 * MON" fires on the 1st of every month and on every Monday. This surprises almost everyone the first time, and the parser flags it when it applies.
Steps are not "every N from now"
*/20 in the minute field means minutes 0, 20 and 40 of every hour - not "twenty minutes after the job last ran". If a run takes 25 minutes, the next one starts at minute 40 regardless. Steps count from the start of the range, and 5-20/5 counts from 5.
Time zones and the hours that go missing
Cron follows the server clock, not yours, so a job set for 02:30 may fire at a different local hour than you expect. Worse, in regions with daylight saving that hour does not exist on one night a year and happens twice on another. For anything that must not be skipped or repeated, schedule it away from 01:00-03:00.