How to use Cron Expression Explainer
- Paste the cron expression.
- Choose the timezone and how many upcoming runs to list.
- Read the explanation, fields and run table.
Cron Expression Explainer features
- crontab.guru-style English description
- 5-field and 6-field (seconds) formats, names, ranges, lists, steps, @shortcuts and L / W / #
- Next runs (up to 100) in any IANA timezone with DST handling
- Field-by-field table with the resolved values
- Warnings for expressions that never fire or that mix day-of-month and day-of-week
- Average interval between runs
Cron Expression Explainer example
Explain a maintenance window
Input:
30 2 * * 6Output:
At 02:30 on Saturday.
Next: 2024-03-16T02:30:00+03:00, 2024-03-23T02:30:00+03:00, …Frequently asked questions about Cron Expression Explainer
Which syntax is supported?
Numbers, names (MON, JAN), ranges (1-5, MON-FRI, wrap-around FRI-MON), lists, steps (*/15, 1-30/5), the shortcuts @hourly @daily @weekly @monthly @yearly @reboot, and the Quartz extensions L, W and # (last day, nearest weekday, nth weekday).
How is the day-of-month / day-of-week conflict resolved?
As in Vixie cron and most schedulers: when both fields are restricted the job runs when either matches (OR). The tool shows a warning when this applies so you can double-check the intent.
How far ahead are runs computed?
Up to 100 runs within the next eight years. If nothing fires in that window — for example 31 February — the tool reports that the expression never fires.
Is the seconds field detected automatically?
Yes. Six space-separated fields are read as seconds first; five fields as the classic format.
Technical notes
Each field expands into an explicit value set (parseCron): day-of-week 7 folds to 0 and ranges may wrap (FRI-MON → 5, 6, 0, 1), '?' means '*' in the two day fields, and a bare-start step (5/15) means 5, 20, 35, 50. Quartz's L, W and # are honoured when scheduling — 1W on a Saturday moves to Monday the 3rd, never into the previous month — but Quartz's seventh year field is rejected.
Upcoming runs come from advancing a wall-clock cursor (month, day, hour, minute, second) in the selected IANA zone (nextRuns) for at most eight years or 2,000,000 steps, converting each match with zonedToUtc and checking the round-trip through Intl.DateTimeFormat. A time missing on a spring-forward night is dropped; a time occurring twice at fall-back fires once, at its first occurrence. Warnings (impossible day/month pairs, 29 February, day-of-month/day-of-week OR) are the parser's, not the scan's.