(Dokumentation på engelsk)
What it does
The Cron Expression Explainer reads any standard 5-field cron expression and translates it into plain English. Type (or pick) an expression and the right-hand panel shows a one-line summary, a field-by-field table of what each part matches, and the next five times it will fire with relative offsets (“in 6 hours”) — all evaluated in UTC so results are unambiguous and DST-independent. Flip to Build mode and it composes an expression field-by-field from friendly inputs. Everything runs 100% in your browser, so internal schedules never leave your machine.
How to use it
- Pick one of the Common chips (
* * * * *,0 0 * * *,0 9 * * 1,0 0 1 * *,0 */6 * * *) or type a 5-field expression into Cron expression (or hit Sample for30 9 * * MON-FRI). - Read the plain-English summary, the per-field table, and the Upcoming runs list on the right.
- Switch to Build and fill the five fields (minute, hour, day-of-month, month, day-of-week) to assemble an expression you can copy.
- Use Copy share link (in Explain mode) to reproduce the exact view — the expression is encoded in the URL.
Field cheat sheet
| # | Field | Allowed values | Names | Specials |
|---|---|---|---|---|
| 1 | minute | 0–59 | — | * any · , list · - range · / step |
| 2 | hour | 0–23 | — | * · , · - · / |
| 3 | day of month | 1–31 | — | * · , · - · / |
| 4 | month | 1–12 | JAN–DEC | * · , · - · / |
| 5 | day of week | 0–7 (0 and 7 = Sunday) | SUN–SAT | * · , · - · / |
Step syntax works in all three forms: */15 (from the field minimum), 0-30/10 (range step), 5/10 (from 5 to the field maximum). When both day-of-month and day-of-week are restricted, a match on either suffices (standard Vixie-cron behavior). Not supported: Quartz extensions (?, L, W, #), 6-field seconds syntax, and @reboot-style macros.
Examples
Verified against the tool’s parser:
| Expression | Explanation |
|---|---|
* * * * * |
Every minute |
0 0 * * * |
At 00:00 |
0 9 * * 1 |
At 09:00, on Monday |
0 0 1 * * |
At 00:00, on day 1 of the month |
0 */6 * * * |
Every 6 hours, minute 0 |
30 9 * * MON-FRI |
At 09:30, on Monday through Friday |
*/15 * * * * |
Every 15 minutes |
0 0 1,15 * * |
At 00:00, on days 1, 15 of the month |
5 4 * * SUN |
At 04:05, on Sunday |
0 12 */2 * * |
At 12:00, every 2 days of the month |
0 0 * 6 SAT |
At 00:00, in June, on Saturday |
23 0-20/2 * * * |
Every 2 hours, minute 23 |
Upcoming runs. For 30 9 * * MON-FRI evaluated from Wednesday 2026-08-26 12:00 UTC, the next three firings are Aug 27, Aug 28, and Aug 31 at 09:30 UTC (it skips the weekend).
Invalid input. 99 * * * (four fields) reports Expected 5 fields (minute hour day-of-month month day-of-week), got 4 in the error panel. 99 * * * * reports minute: value 99 is above maximum 59. 0 0 31 2 * is grammatically valid but February has no 31st — the panel shows “No upcoming run within ~3 years”.
Good to know
- Shareable: in Explain mode your expression is encoded in the URL, so a link reproduces the exact explanation.
- Private: all parsing happens locally — safe for internal or proprietary schedules.
- Times are UTC. The upcoming runs assume the schedule runs on UTC clocks. Most servers run crond on local machine time, so shift accordingly before trusting the countdown.
- Five upcoming firings are listed, searched up to ~3 years ahead; an expression that never matches a real date (like Feb 31) shows the empty note instead.
- Related tools: JSON → TypeScript, JSON Formatter,
Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
.