OpenReplay Logo
12k

Cron expression parser

Parse any cron expression into plain English, preview the next runs, and build schedules field by field — all in your browser.

Next 5 runs
Field breakdown
Build an expression

Common presets

Per-field builder

Processed locally
* * * * *

About this tool

A cron expression is a compact schedule string used by Unix cron, Kubernetes CronJobs, CI pipelines, and most job schedulers. It has five space-separated fields — minute, hour, day of month, month, and day of week — with an optional sixth leading field for seconds. Each field accepts a wildcard (*), a single value, a list (1,15,30), a range (9-17), or a step (*/15, 0-12/3), and the month and weekday fields also accept names like JAN or MON. This parser expands every field to its concrete values, resolves the @yearly, @monthly, @weekly, @daily, and @hourly nicknames, and treats 7 as Sunday the same as 0.

Use it to confirm that a deploy job really fires every weekday at 9am, to debug why a backup never runs, or to read a teammate's cryptic */15 9-17 * * 1-5 at a glance. The Next 5 runs panel computes upcoming fire times in your local timezone or UTC, correctly applying standard cron's OR rule when both day-of-month and day-of-week are restricted, and jumping cleanly across leap years for schedules like 0 0 29 2 *. The builder's presets and per-field Every / At / Range / Step controls compose a valid expression live so you can author a schedule without memorizing the syntax.

Quartz-only extensions (L, W, #, and ?) are not standard cron and are rejected with a clear message rather than parsed incorrectly.

Frequently asked questions

What does the cron expression */15 9-17 * * 1-5 mean?

It runs every 15 minutes (at :00, :15, :30, and :45) during the hours 09:00 through 17:59, Monday through Friday. The */15 is a step on the minute field, 9-17 is an hour range, and 1-5 covers the weekdays Monday to Friday.

In cron, is the day of week 0 or 7 for Sunday?

Both 0 and 7 mean Sunday in standard cron, so SUN, 0, and 7 are interchangeable. The weekday field runs 0 (Sunday) through 6 (Saturday), with 7 accepted as an alias for Sunday.

How does cron handle both day-of-month and day-of-week being set?

When both the day-of-month and day-of-week fields are restricted (neither is *), standard cron uses OR semantics: the job runs if either field matches. So 0 0 13 * 5 fires on the 13th of every month and on every Friday.