Cron Expression Parser & Explainer

Enter a standard 5-field cron expression — minute, hour, day-of-month, month, day-of-week. The explanation and next run times update as you type.

Examples

How it works

Each field accepts * (every value), a single number, a comma list (1,3,5), a range (1-5), or a step (*/15, 1-10/2) — and these combine freely within one field, the way real cron expressions do. The month and day-of-week fields also accept 3-letter names (JANDEC, SUNSAT), including in a range like MON-FRI.

The day-of-month/day-of-week quirk: when BOTH fields are restricted (neither is left as *), a date matching either one counts — it does not have to satisfy both. 0 0 1,15 * MON above runs on the 1st, the 15th, and every Monday, not only on a Monday that also happens to be the 1st or 15th.

Next run times are found by simple brute force: starting just after the moment you gave (or right now, if you left it blank), every UTC minute is checked against the parsed fields until enough matches are found. That is deliberately the simple approach rather than a clever jump-to-the-next-valid-value one — no schedule worth explaining needs scanning more than a few days of minutes to find its next few runs, and simple code is much easier to trust than fast code that is subtly wrong.