Skip to the tool

Cron expression

MDV Tools

Read a crontab line in plain English, or build one from a preset, and see when it fires next.

Runs on this device Works offline
type a crontab line above
How this works

The page reads the five fields of a crontab line — minute, hour, day of month, month, day of week — written as *, a number, a list (1,15), a range (9-17) or a step (*/5, 10-40/10). Month and weekday names work in any case (JAN, mon), Sunday is both 0 and 7, and the shorthands @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly expand to their five fields. Two things are refused rather than guessed: @reboot, which is an event and not a time, and a six-field expression with seconds, which belongs to Quartz or Spring and not to crontab. Backwards ranges such as 22-4 are refused too — crontab does not define them, and different daemons disagree.

The rule people get wrong is the last one: when day of month and day of week are both restricted, cron runs when either matches, not when both do. So 0 0 13 * 5 is every 13th and every Friday, not Friday the 13th. When one of the two is *, only the other decides. The page says which rule is in force under the sentence.

The next runs are worked out by walking forward day by day for five years, taking the days the month and day rules allow, then the hours and minutes inside them; if nothing matches in that span the page says so, which is the honest answer for a line such as 0 0 30 2 *. Times are this device's own clock and this device's summer-time rules. A real daemon uses the clock of the machine it runs on, so treat these as a reading of the expression, not a promise about a server; an hour the clocks skip is resolved the way the browser resolves it, and cron implementations differ on exactly that hour. Seconds are never part of a crontab line: every run lands on the minute.

Nothing leaves the page — the expression is parsed here, and there is no server in this file. The Dark button remembers its setting in this browser's local storage; nothing you type is stored.