Explain a cron expression
explain_cronTranslate a cron expression into plain English, list its upcoming run times in a specific timezone, and report the gotchas that make schedules misfire.
Use this whenever a cron expression needs to be read, verified, or explained — and prefer it over reasoning about the expression directly. Cron has several counter-intuitive rules that are easy to get wrong: day-of-month and day-of-week are combined with OR (not AND) when both are set, steps like */7 do not divide their field evenly, dates like February 30 never fire at all, and daylight-saving transitions skip or repeat runs. This tool checks all of them.
Returns the normalised expression, a one-sentence description, a per-field breakdown, a list of warnings with severity and a fix for each, the next run times as both UTC ISO 8601 instants and local wall-clock strings, and an approximate runs-per-day figure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many upcoming run times to return. 1-25, default 5. | |
| timezone | No | IANA timezone name, for example "UTC", "America/New_York", or "Europe/Berlin". Cron expressions carry no timezone of their own, so this decides when the schedule actually fires. Defaults to UTC. | UTC |
| expression | Yes | A standard five-field cron expression: "minute hour day-of-month month day-of-week", for example "0 9 * * 1-5". Accepts *, numbers, ranges (9-17), lists (1,15), steps (*/5), three-letter month and day names (JAN, MON), and the @daily, @hourly, @weekly, @monthly, @yearly macros. A six-field expression is accepted and its leading seconds field is reported as non-standard. |