MSRX Tools

Cron Expression Parser

Read a cron line in plain English and see the next runs.

Everything runs inside your browser. Your files never leave your device.

Input

Result

The result appears here as you type.

Ask about Cron Expression Parser

Questions about what this tool does, which option to pick, or what it can and cannot handle.

The question you type here is sent to an AI provider to be answered — your files and whatever you put in the tool above are not, and the assistant cannot see them. Answers are generated and can be wrong. The tool itself is not guessing: it runs deterministic code on your device.

About the Cron Expression Parser

Cron syntax is five fields of numbers and symbols that describe a schedule, and reading it back is genuinely hard. Nobody looks at */15 9-17 * * 1-5 and immediately thinks "every quarter of an hour during office hours on weekdays" — they work it out, and sometimes they work it out wrong.

This translates the expression into a sentence and then lists the next several times it will actually fire. Both halves matter. The sentence tells you what you wrote; the list of upcoming runs tells you whether that is what you meant, which is a different question and the one that catches mistakes.

The classic error the run list exposes immediately is the day-of-week and day-of-month interaction. When both fields are restricted, cron treats them as an OR rather than an AND: "0 0 1 * 1" runs on the first of the month and on every Monday, not on Mondays that fall on the first. Anyone expecting the intersection is in for a surprise, and it will be a surprise in production. The list of next runs makes it obvious in a second.

Also visible at a glance is the difference between */5 and 5. The first means every five units; the second means at exactly five past. They differ by one character and by a factor of twelve in how often the job runs.

The step syntax is worth knowing properly, since it is where most non-obvious expressions come from. */n means every n units from the start of the range, and a-b/n means every n units within that range only — so 0-30/10 in the minute field fires at zero, ten, twenty and thirty and nothing else in that hour.

How to use it

  1. 1Paste the cron expression. Five fields is the standard form; six with seconds is also read.
  2. 2Read the plain-English description of what it means.
  3. 3Check the list of upcoming run times against what you actually intended.
  4. 4Look especially at the day-of-week and day-of-month fields if both are set, since cron combines them with OR rather than AND.

Questions

What do the five fields mean?
Minute, hour, day of month, month, day of week, in that order. An asterisk means every value, a comma separates a list, a hyphen gives a range and a slash gives a step.
Why does my job run more often than expected?
Usually 5 where */5 was meant, or the reverse. It can also be the day-of-week and day-of-month OR behaviour, which fires on both conditions rather than their intersection. The upcoming run list shows either immediately.
What time zone does cron use?
The system's local time, unless the daemon or the platform is configured otherwise. That matters twice a year: a job scheduled inside the hour that repeats at the end of daylight saving can run twice, and one inside the hour that disappears may not run at all.
Is @daily the same as 0 0 * * *?
Yes, and @hourly, @weekly, @monthly and @yearly are the equivalent shorthands. @reboot is different in kind — it fires when the daemon starts rather than on any schedule.