Cron Builder
Build a cron schedule visually or paste one, read it in plain English, and see exactly when it will run next in your time zone.
Settings
Device time zone · 10 runs · 5 fields
How to Use Cron Builder in 3 Steps
Build or paste
Pick a preset, type an expression, or use the visual builder: each field can be every, every N, between or specific values (click the chips). The builder and the expression stay in sync in both directions.
Read it back
The right pane explains the schedule in plain English and lists the next runs in your device time zone — or any zone from Settings, so a server in UTC and a team in Mumbai see the same thing. Warnings flag expressions that never run or mix day-of-month with day-of-week.
Copy into your scheduler
Copy the expression for crontab, Kubernetes CronJob, GitHub Actions or a cloud scheduler. Turn on Six fields for Quartz / Spring style schedules with a seconds column. Download the explanation and run list as text or JSON.
Cron fields & special characters
| Field | Allowed values | Special characters |
|---|---|---|
| Seconds (6-field only) | 0–59 | , - * / |
| Minute | 0–59 | , - * / |
| Hour | 0–23 | , - * / |
| Day of month | 1–31 | , - * / ? L W — L last day, 15W nearest weekday to the 15th |
| Month | 1–12 or JAN–DEC | , - * / |
| Day of week | 0–7 or SUN–SAT (0 and 7 are Sunday) | , - * / ? L # — 5L last Friday, 1#2 second Monday |
| Aliases | @yearly @annually @monthly @weekly @daily @midnight @hourly expand to a standard expression; @reboot runs at start-up and has no next-run list. | |
Cron Builder — Frequently Asked Questions
Which cron syntax does this follow?
Standard Vixie / POSIX cron (what crontab, Kubernetes, GitHub Actions and most cloud schedulers use): five fields, , lists, - ranges, / steps, names for months and weekdays, and the @hourly-style aliases. The Quartz extensions L, W, # and ? are also understood, as is a leading seconds field when you turn it on. Year fields and non-standard words are not.
Why does “1 and Monday” run more often than I expected?
When both day-of-month and day-of-week are restricted (neither is *), classic cron runs on days that match either one — 0 9 1 * 1 fires on the 1st and every Monday. The tool warns about this; use #, L or two separate jobs if you meant “and”.
How are time zones handled?
Cron expressions have no time zone of their own — the scheduler’s zone applies. Pick the zone your server or platform uses in Settings and the next-run list is computed there, including daylight-saving changes: a time that does not exist on a spring-forward night is skipped, as real cron does.
Why is the next-run list empty?
Either the expression can never match (for example 0 0 31 2 * — there is no 31 February), or it is @reboot, which runs at start-up only. The tool searches up to five years ahead.
Does this check how my specific scheduler reads it?
No — it validates the expression and simulates standard cron. Some platforms add limits (GitHub Actions runs at most every 5 minutes, AWS EventBridge uses a 6-field form with a year and requires ?); check their docs for those rules.
Is anything sent to a server?
No. Parsing and the next-run calculation happen in JavaScript in your browser; nothing you type leaves the page.