How to use the Cron Expression Analyzer
Paste any cron expression — Unix 5-field, Quartz / Spring 6-field, GitHub Actions, AWS EventBridge, or Kubernetes CronJob — and get a plain-English explanation, per-field breakdown, and the next 10 run times in UTC and your local time. Useful when debugging "why did this job run?", reviewing a PR, or onboarding to an inherited codebase. Runs locally in your browser.
What it does
- Parses Unix (5-field), Quartz (6-field with seconds), and EventBridge (6-field with year) cron.
- Explains each field in plain English and produces a combined schedule description.
- Shows the next 10 run times in UTC and your local time.
- Detects invalid expressions and points at the offending field.
- Detects schedules that never run (e.g., Feb 30) or run far less than expected.
- Supports special tokens:
@daily, @hourly, @reboot, L, W, #, ? (with platform notes).
When to use it
- Decode a cron string you inherited in a runbook or repo.
- Review a teammate's cron change in a pull request.
- Investigate why a scheduled job ran at an unexpected time.
- Compare cron behavior between CI, app scheduler, and a cloud event rule.
- Confirm a complex schedule like "last weekday of the month at 02:00 UTC".
- Learn what an unfamiliar cron syntax means.
How to use it
- Paste the cron expression into the input.
- The analyzer auto-detects the variant (5-field, 6-field, EventBridge) or you can pick manually.
- Read the plain-English summary and field breakdown.
- Confirm by reviewing the next 10 run times in UTC and local time.
- To build a new expression from scratch, switch to the Cron Builder.
Tips & pitfalls
- Time zone: most cloud schedulers run in UTC. The analyzer shows both UTC and local for clarity.
- Combining specific day-of-month and day-of-week is usually OR on Unix cron — the job runs whenever either matches, not both.
- The
? character is a Quartz / EventBridge extension — replace with * for plain Unix cron.
- Quartz extensions
L (last), W (weekday), # (nth weekday) are not portable across all schedulers.
- Schedules with both DOM and DOW restrictions sometimes never match — check next-run preview to confirm.
- The analyzer does not connect to your scheduler; the actual next-fire time can drift slightly due to scheduler internals.
FAQ
- How do I read a cron expression? Paste it — the analyzer breaks down each field and gives a sentence-level description.
- What does
0 9 * * 1-5 mean? Every weekday at 09:00. The analyzer confirms with the next runs.
- Why does my cron job fire twice? If you specified both day-of-month and day-of-week, most systems treat them as OR.
- What is the difference between Unix and Quartz cron? Quartz adds a seconds field at the start and special characters (
L, W, #, ?).
- Is the expression uploaded? No. Parsing and run-time calculation happen in your browser.
- How do I build a cron expression visually? Use the Cron Builder with platform presets.
Runs locally in your browser. No uploads. Always confirm the schedule with the next-run preview before relying on it.