Cron expression
Summary
Breakdown
| Field | Value | Meaning |
|---|
Next run times
A tool for figuring out when a cron expression like `*/5 9-17 * * 1-5` from your crontab will actually fire. Paste an expression and it translates each field — minute, hour, day-of-month, month, day-of-week — into plain language, then lists the next run times in your device's local time. It handles the standard five fields (minute hour day month weekday), an optional leading seconds field (six fields), names such as `JAN`–`DEC` and `MON`–`SUN`, and aliases like `@daily`, `@hourly`, `@weekly`, `@monthly`, `@yearly`, and `@midnight`. It understands `*` (every), `*/15` (every 15), `1-5` (ranges), `0,30` (lists), and `9-17/2` (range with step). The "Summary" condenses the whole expression into one line, while the "Breakdown" table shows each field's raw value next to its meaning. When both day-of-month and day-of-week are restricted, the next-run calculation uses the classic Vixie cron rule of matching either one (OR). You can show between 1 and 20 upcoming runs, and that choice is saved in your browser so it opens the same way next time. Importantly, the cron expression you enter is never uploaded, stored, or sent to a server — all parsing and time calculation happen with JavaScript's Date entirely inside your browser, so it is safe to paste internal job definitions. Note that Quartz-specific tokens `L` (last), `W` (weekday), and `#` (nth weekday) are out of scope, and expressions using them are flagged as errors. Because cron is easy to get wrong around seconds and weekday numbering (both 0 and 7 mean Sunday), always confirm the result against the listed next run times.
How to use
- Paste a cron expression (e.g. `*/5 9-17 * * 1-5`) into the box to see each field's meaning in the Summary and Breakdown.
- The "Next run times" list shows upcoming runs in your local time — change how many (1–20) with the control.
- Use the example chips to try common patterns. The expression is never sent anywhere; it is parsed in your browser.
FAQ
Is the cron expression I enter uploaded anywhere?
No. Both the parsing and the next-run calculation happen entirely in your browser with JavaScript's Date. Your expression is never uploaded, stored, or sent to a server, so even internal job definitions stay on your device.
Does it support cron with seconds (6 fields)?
Yes. When an expression has six fields, the first is treated as seconds (0–59). With five fields, seconds default to 0 and it is read as standard cron (minute hour day month weekday).
What happens when both day-of-month and day-of-week are set?
It follows the classic Vixie cron rule: when both are restricted, a time matches if it satisfies either one (OR). When one is `*`, only the other field applies.
Can I use `@daily` or names like `JAN` and `MON`?
Yes. It expands the aliases `@yearly`/`@annually`/`@monthly`/`@weekly`/`@daily`/`@midnight`/`@hourly`, and understands month names (JAN–DEC) and weekday names (SUN–SAT). Both 0 and 7 are treated as Sunday.
Are any tokens unsupported?
Quartz-specific tokens `L` (last day/weekday), `W` (nearest weekday), and `#` (nth weekday) are out of scope; expressions containing them are shown as errors. Standard cron syntax (`*` `,` `-` `/`) is supported.