Cron Builder with Next-Run Preview
Build a cron expression with dropdowns or by hand, get a plain-English description, and preview the next 10 run times in any timezone.
How to use this tool
- Pick presets in the per-field dropdowns, or type a raw 5-field cron expression — both stay in sync.
- Choose the timezone the schedule should be interpreted in.
- Read the plain-English description and confirm the next 10 run times look right.
- Copy the expression into your crontab / CI config, or share the link to show a teammate.
cron-builder is a two-way cron editor for developers, sysadmins and anyone wiring up a scheduled job. Unlike a plain explainer, it lets you build an expression from per-field dropdowns (minute, hour, day-of-month, month, day-of-week) and edit the raw expression directly — the two views stay in sync. The killer feature is the live next-10-run-times preview rendered in any IANA timezone you pick, so you can verify a schedule actually fires when you expect before you ship it to crontab, GitHub Actions, Kubernetes CronJobs or a cloud scheduler.
Everything runs in your browser. Share a link and the recipient sees the exact same expression and timezone.
How it works
The Cron Builder helps you construct and understand cron expressions without memorizing the five-field syntax. Use the dropdown controls to set minute, hour, day-of-month, month, and day-of-week values, or type a raw cron string directly into the expression field.
As you build the expression, the tool converts it into plain English so you can confirm it means what you intend. It then previews the next 10 scheduled run times in the timezone of your choice, making it easy to catch off-by-one errors like a midnight job firing at noon in production due to a timezone mismatch.
Paste the finished expression into any cron-compatible scheduler: Linux crontab, GitHub Actions, AWS EventBridge, Kubernetes CronJobs, or similar. The tool runs entirely in your browser and does not require an account.
Worked example
Schedule a job to run every weekday at 9 AM UTC
- Set Minute to 0, Hour to 9.
- Set Day of week to Monday through Friday (1-5).
- Leave Day of month and Month as * (every).
- Read the plain-English description: 'At 09:00 on every day-of-week from Monday through Friday.'
- Check the next-run preview to confirm the dates fall on weekdays.
Cron expression: 0 9 * * 1-5
Common mistakes to avoid
- Confusing day-of-week numbering — some systems use 0=Sunday, others 1=Monday; verify in the plain-English description.
- Setting both day-of-month and day-of-week to specific values — most cron implementations treat this as OR, not AND, which can cause unexpected extra runs.
- Forgetting that cron does not account for DST changes — a 2 AM job may run twice or be skipped on clock-change days.
Key terms
- Cron expression
- A five-field string (minute hour day month weekday) that defines a recurring schedule for automated tasks.
- Wildcard (*)
- A placeholder meaning 'every valid value' for that field, e.g. * in the hour field means every hour.
- Timezone offset
- Cron daemons typically run in server local time; always verify your expression against the server timezone, not your local clock.
Frequently asked questions
- How are the next run times calculated?
- The expression is parsed into the set of allowed minutes, hours, days, months and weekdays, then each upcoming minute is tested in your chosen timezone using the browser's Intl API. This correctly accounts for daylight-saving transitions in that zone.
- Does it follow standard cron day-of-month / day-of-week rules?
- Yes. When BOTH day-of-month and day-of-week are restricted (neither is '*'), Vixie/crontab semantics treat them as an OR — the job runs if either matches. When only one is restricted, it is required. The builder mirrors this.
- Is my schedule sent to a server?
- No. Parsing, the English description and all run-time math happen locally in JavaScript. The only thing in the shareable URL is the expression and the timezone you chose.