Contact

Tools  /  Time  /  Cron Builder & Explainer

Cron Builder & Explainer

Build a cron schedule from plain-language fields or paste any expression to read it back in English, see the next runs in any timezone, and copy it as a crontab line, a systemd OnCalendar rule or a GitHub Actions schedule. Supports 5-field cron, 6-field (with seconds), @shortcuts, ranges, steps, lists, names, and L / # / ? for day-of-week.

What this tool does

It turns a cron expression into a readable schedule and a list of upcoming run times, and it builds an expression for you from simple per-field choices. Every change updates both directions at once.

The five fields

A standard cron line is minute hour day-of-month month day-of-week. Each field accepts * (every), */5 (a step), 1,15,45 (a list), 9-17 (a range), 9-17/2 (a stepped range), or names such as JAN and MON. A sixth field at the front adds seconds.

Shortcuts

@yearly, @monthly, @weekly, @daily (also @midnight) and @hourly expand to their five-field equivalents.

Next runs and timezones

The next run times are computed by scanning forward minute by minute and matching every field, in the timezone you pick — so a 0 9 * * 1-5 job shows 9am on the next weekdays in that zone, DST included.

Copy formats

The raw expression, a crontab line with a command placeholder, a systemd OnCalendar= timer rule, and a GitHub Actions schedule: block.

Privacy

Everything runs in your browser. Nothing is sent anywhere.

Frequently asked questions

What does the day-of-week 0 mean — Sunday or Monday?
In standard cron, 0 and 7 both mean Sunday. Names (SUN, MON, ... SAT) map to 0 through 6. This tool follows that convention.
What happens when both day-of-month and day-of-week are set?
Standard cron treats them as OR: the job runs when either matches. The explanation notes this so a "0 0 1 * MON" is read as "the 1st of the month, and every Monday". Restrict one of them to * if you want a single condition.
Does it support seconds?
Yes. A six-field expression is read as "second minute hour day month weekday", which matches Quartz and several cron implementations. Five fields is the classic Unix form.
How are the next run times calculated?
By stepping forward from now, one minute (or one second, for six-field) at a time, and checking each candidate against every field, up to a four-year horizon. It respects the chosen timezone including daylight saving shifts.
What do L and # mean in the weekday field?
L means "the last of that weekday in the month" (5L is the last Friday). N#K means "the Kth occurrence" (1#2 is the second Monday). ? is a no-op placeholder used by Quartz when the other day field is set.
Is anything uploaded?
No. Parsing, the description and the run-time scan all happen locally in your browser.
Theme Accent