Date & Time

Cron Expression Explainer

Translates cron expressions into English and shows the next runs in the timezone you choose.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Paste your cron expressions, one per line. The @daily style shorthands are understood too.
  2. Set the timezone your scheduler runs in — that is the one the next runs should be shown in.
  3. Select Explain.
  4. Read the next runs rather than the sentence. The sentence tells you what the fields say; the runs tell you what will actually happen.

What cron explainer does

Cron syntax is compact and nearly unreadable, and the mistakes it invites are expensive because they are silent — a job that runs a hundred times more often than intended, or not at all. This page expands the five fields into a sentence and then does the more useful thing: it shows you the actual next runs, which is the only real check that an expression means what you thought.

One rule catches almost everyone. When both the day-of-month and the day-of-week fields are restricted, cron runs on either — not on both. "0 0 13 * 5" is the 13th of the month and every Friday, not Friday the 13th. That behaviour is called out in the explanation for exactly the expressions where it applies.

Frequently asked questions

Because cron combines the day-of-month and day-of-week fields with OR, not AND, whenever both are restricted. That expression runs on the 13th of every month and on every Friday — roughly five times a month rather than once or twice a year. The explanation says so wherever the rule applies.

Standard cron has five: minute, hour, day of month, month, day of week. A leading seconds field is a Quartz and Spring extension, not cron, and reading it as though it were standard would give you the wrong times with no warning — so it is refused instead.

In whichever you select, and you should select the one your scheduler runs in. A cron daemon follows the wall clock of its own host, which is the single most common reason a job appears to fire an hour early or late twice a year.

That the fields contradict each other — 30 February being the classic case. The search stops at four years because an expression that matches nothing in that window is a mistake rather than a rare schedule.