How to use Cron Expression Generator
- Start from a preset or leave "Custom schedule".
- Set each field: choose a mode and pick values, a range or a step.
- Check the plain-English explanation and the upcoming runs.
- Copy the expression into your crontab, CI config or scheduler.
Cron Expression Generator features
- Presets for common schedules including Gulf work-week (Sunday–Thursday) and last-day-of-month
- Per-field builder: every, specific values, range or step for minutes, hours, days, months and weekdays
- Optional seconds field for Spring / Quartz / node-cron
- Live expression, English explanation and the next 10 runs in your timezone
- Load any existing expression into the builder
- One-click copy of the expression
Cron Expression Generator example
Weekdays at 09:00 and 17:00
Input:
Minutes: 0 · Hours: 9,17 · Days: every · Months: every · Weekdays: Mon–FriOutput:
0 9,17 * * 1-5
At minute 0 past hour 9 and 17 on Monday through Friday.Frequently asked questions about Cron Expression Generator
Which cron format does the generator produce?
The standard 5-field format (minute hour day-of-month month day-of-week) used by crontab, Kubernetes CronJobs, GitHub Actions, Cloudflare Cron Triggers and most schedulers. Tick "Include seconds" for the 6-field format used by Spring, Quartz and node-cron.
What does "Every N (step)" mean?
It produces */N: for minutes, */15 fires at :00, :15, :30 and :45 of every hour. Set a start value to get an expression like 5-59/15.
Are the next run times in my timezone?
They are computed in the timezone you select, with daylight-saving transitions handled — a job scheduled at 02:30 is skipped on a night when 02:30 does not exist.
Can I load an existing expression into the builder?
Yes — paste it in the "Load an existing expression" field. Lists, ranges and steps are mapped to the controls; L, W and # forms are explained but cannot be edited visually.
Why is there a Sunday–Thursday preset?
Saudi Arabia, Jordan and most Gulf countries work Sunday to Thursday, so "0 8 * * 0-4" is the local equivalent of a weekday schedule.
Technical notes
The builder emits the narrowest canonical form (buildCron): specific values are de-duplicated, sorted and compressed into a range only when three or more are consecutive (0,15,30,45 stays a list; 9,10,11,12 becomes 9-12), a step starting at the field minimum is written */N and otherwise from-max/N (5-59/15), and a reversed range is silently swapped. Day-of-week is capped at 6, so Sunday is always written as 0, never 7.
Loading an expression maps the parsed value sets, not the raw text, back onto the controls: MON-FRI becomes checkboxes 1–5, the Quartz-style 5/15 loads as step 15 from 5 and is re-emitted as 5-59/15, and a field using L, W or # is reset to 'every' with a note because no control exists for it. Next runs use the same DST-aware scheduler as the explainer, in the timezone chosen here, capped at 10.