toolfree

Cron expression

Parse a cron expression in your browser, explain each field, and see the next runs in a real time zone — including the ones daylight saving removes.

Runs in your browser

Enter a cron expression.

The next runs are the point

A cheatsheet can tell you what the five fields mean. It cannot tell you that your expression fires at a time which does not exist next March, or that it runs four times more often than you intended.

So this shows the next actual runs, resolved in a named time zone, and says when daylight saving removes one.

The rule everyone gets wrong

Day-of-month and day-of-week are ORed, not ANDed — but only when both are restricted.

0 0 1 * MON does not mean “the first of the month, if it is a Monday”. It means the 1st of every month, and also every Monday. On a typical month that is five or six runs, not one.

If only one of the two fields is restricted, that one simply governs, which is why the rule goes unnoticed for years. The page says so explicitly whenever your expression is in the case where it applies.

The behaviour is in POSIX because Vixie cron did it, and every mainstream cron has copied it since.

Daylight saving

This is where explainers are wrong, and it is not a corner case — it happens twice a year to every schedule between midnight and 3am.

Spring forward. A zone that jumps 02:00 to 03:00 has no 02:30 that day. An expression saying 30 2 * * * simply does not run. Not late, not early — skipped. The page lists those dates rather than showing a time that never happens.

Fall back. The hour repeats, so 01:30 occurs twice. Cron implementations disagree about whether to run once or twice; this shows the first occurrence, and it is worth knowing your scheduler may differ.

The safe answer: schedule jobs that must not be missed outside 01:00–03:00, or run them in UTC where no such thing happens.

Fields, and the things that catch people

┌───── minute        0-59
│ ┌─── hour          0-23
│ │ ┌─ day of month  1-31
│ │ │ ┌ month        1-12 or JAN-DEC
│ │ │ │ ┌ day of week 0-6 or SUN-SAT
* * * * *

Nothing is uploaded

Parsed in this page.