What this tool does
Decodes a cron expression into plain English, lists the next 5 occurrences, and breaks down each field (minute, hour, day-of-month, month, day-of-week) so you can verify your schedule before deploying it. Supports steps (*/15), ranges (1-5), lists (1,15,30), names (MON, JAN), and the common aliases (@hourly, @daily, @weekly, @monthly, @yearly).
When you'd use it
- Confirming that "every Tuesday at 3 AM" is actually
0 3 * * 2and not0 3 * * TUE(it's both). - Seeing when the next run will fire after a deploy.
- Sanity-checking a schedule pulled from a Kubernetes
CronJobmanifest. - Translating between AWS EventBridge syntax and standard cron mentally.
How it works
The parser handles standard 5-field cron — minute, hour, day-of-month, month, day-of-week — plus the named aliases. It does not handle the 6-field Quartz dialect (which adds a seconds field) or the 7-field AWS form (which adds a year field), because those are different specs.
Next-run computation walks forward minute by minute, checking each field. That's slow in the worst case (a schedule that fires once a year takes ~525,600 iterations) but never noticeable for human-scale viewing.
Notes
Day-of-month and day-of-week are OR'd, not AND'd. 0 0 1 * MON doesn't mean "the first of the month if it's a Monday" — it means "the first of the month, or any Monday." This is the historical Vixie cron behavior and trips up almost everyone.
Sunday is 0 or 7? Both. Most cron implementations accept either. SUN is also fine.
Is @reboot supported? No — that's a system-cron-only directive without a wall-clock meaning, and we can't preview it.
Related tools
- Timestamp Converter — verify the next-run times in your timezone
- Regex Tester — for matching cron strings programmatically