Understand a Cron Expression
Paste a cron expression you inherited and get a plain-English explanation along with the next 10 scheduled run times. Never misread a cron again.
Open Cron Expression Analyzer with a ready-to-run example.
- You inherited a codebase and need to understand when an existing scheduled job runs.
- A colleague pasted a cron expression in a pull request and you need to review whether it is correct.
- A job ran unexpectedly and you want to verify whether the cron expression is what you thought it was.
- You need to confirm that two cron expressions don't overlap and cause resource contention.
- Open the Cron Expression Analyzer and paste your expression in the input box.
- The tool explains each field in plain English and shows the combined schedule description.
- Scroll down to see the next 10 run times calculated from now.
- Toggle the format (5-field, 6-field, Quartz) if the expression uses seconds or year fields.
- Cron runs in UTC on most servers — the local time shown in the analyzer may differ from when the job actually fires.
- Combining specific day-of-month and day-of-week values is OR on most systems (runs on the Nth day OR the specified weekday), not AND.
- The
?character is a Quartz extension — if your system uses standard cron, replace it with*. - Step values (
*/5) always start at 0, not at the first scheduled time. A job set to*/7minutes runs at 0, 7, 14, 21, 28, 35, 42, 49, 56, then resets — not every 7 minutes from a custom offset.
Weekly Sunday backup job
0 2 * * 0
Every Sunday at 2:00am UTC
Sun 2026-03-22 02:00:00 UTC Sun 2026-03-29 02:00:00 UTC Sun 2026-04-05 02:00:00 UTC
First day of each month at midnight
0 0 1 * *
At midnight (00:00) on the 1st of every month
Common causes: the schedule is UTC but you expected local time; day-of-month and day-of-week are both specified (most daemons interpret this as OR); a step value like */10 always starts at 0, not from an arbitrary minute offset.
In standard Unix cron, * means "every valid value". The ? symbol is a Quartz extension meaning "no specific value" — use it in day-of-month or day-of-week to avoid conflicts when only one of them should drive the schedule. Standard cron does not recognise ?.
Privacy-first: runs locally in your browser. No uploads.