Cron parser

Plain-English explanation and the next runs, computed locally.

Common schedules, explained

Guides for the expressions everyone ends up needing:

every minuteevery 5 minutesevery 10 minutesevery 15 minutesevery 30 minutesevery hourevery 6 hoursevery day at midnightevery day at 9 amevery weekday at 9 amevery sunday at midnightfirst of every month at midnighttwice a day (06:00 and 18:00)every quarter (1st of jan/apr/jul/oct)every year (january 1st, midnight)

Reading a cron expression

Five space-separated fields — minute, hour, day of month, month, day of week — each accepting exact values, ranges (1-5), lists (1,15), steps (*/10), and names (mon, jan). This parser implements standard (POSIX/Vixie) cron semantics, including the surprising rule that a restricted day-of-month and day-of-week combine with OR, and previews upcoming fire times in your local timezone.

Everything runs in your browser — nothing to install, nothing sent anywhere. For the inverse direction (English to cron), start from a nearby example chip and adjust.

Frequently asked questions

What do the five fields mean?

Left to right: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC), day of week (0–7 or SUN–SAT, where 0 and 7 are both Sunday). * means "every".

Why does "0 0 13 * 5" run on more days than I expect?

Classic cron quirk: when day-of-month AND day-of-week are both restricted, the job runs when EITHER matches. That expression fires every Friday and on the 13th of every month — not only Friday the 13th.

Which timezone are the next runs shown in?

Your browser’s local timezone — the same clock crond would use on a server set to your timezone. Remember production servers often run UTC.

Are @daily and */5 supported?

Yes — @yearly, @monthly, @weekly, @daily, @midnight, @hourly aliases, plus steps (*/5, 1-30/2), ranges (mon-fri), lists (1,15) and names (JAN, SUN).