Cron Expression Builder
Visually build a cron expression — minute, hour, day, month, weekday — and preview the next 5 fire times.
0 9 * * 1-5
Enter input above to see the result.
What is this for?
Cron syntax is famously dense — five fields, each accepting wildcards, ranges, lists, and steps. Writing one from scratch every time invites typos and off-by-one errors. This builder lets you construct a cron expression visually using dropdowns and presets, see the resulting string, read a plain-English summary, and verify against the next five real fire times in your local timezone before deployment.
When to use it
- Setting up a new
crontabentry on a Unix/Linux server or scheduling task on any platform that accepts standard 5-field cron syntax. - Configuring a Kubernetes
CronJob, GitHub Actions workflow schedule, AWS EventBridge rule, or any cloud scheduler that uses cron expressions. - Translating a business requirement — "run every weekday at 09:00", "backup on the 1st and 15th", "execute every 30 minutes except weekends" — into a syntactically correct, tested expression.
- Debugging a cron job that doesn't fire when expected; use the preview to confirm the expression matches your intent.
- Onboarding developers unfamiliar with cron syntax; the dropdowns and real-time preview teach the syntax faster than documentation.
How it works
- Start with a preset or blank fields. Choose from common schedules (every 5 minutes, weekdays 9 AM, monthly, etc.) or build from five empty fields: minute, hour, day, month, weekday.
- Edit fields individually or type syntax. Use dropdowns for simple selections, or paste/type cron syntax directly:
*/5,9-17,1,15,0-30/5, and so on. - Watch the preview update in real time. The tool generates the five-field cron string, shows a human-readable interpretation, and lists the next five fire times in your browser's local timezone.
- Copy the expression and deploy. Once you're satisfied, copy the cron string and paste it into your server, job scheduler, or cloud platform. Always confirm the timezone assumption with your target system.
Field syntax reference
*— every value in the field's range.*/N— every Nth interval, starting at the lower bound (e.g.*/15in minutes = 0, 15, 30, 45).A-B— range, inclusive (e.g.9-17in hours = 9 AM to 5 PM).A,B,C— comma-separated list of specific values (e.g.1,15in day = 1st and 15th).A-B/N— every Nth within range A–B (e.g.0-30/5= 0, 5, 10, 15, 20, 25, 30).
Common gotchas
- Day-of-month and day-of-week interact via OR. If you specify both a day-of-month and a day-of-week (neither
*), cron fires when either matches.* * 15 * 1runs on the 15th OR any Monday, not "only on the 15th if it's a Monday". - Timezone mismatch. This tool shows fire times in your browser's local timezone for convenience. Real cron daemons run in the server's timezone (often UTC). Always verify the target system's timezone before deploying.
*/Nisn't "every N from the current time".*/15in minutes always produces 0, 15, 30, 45 — not a rolling 15-minute interval. Use a list if you need a specific phase.- Non-standard cron flavours use extra fields. Quartz scheduler uses 6–7 fields (adding seconds and optionally year). systemd timers use a completely different format. This tool targets the standard 5-field
crontabsyntax. - Complex logic is awkward in cron. Conditions like "Friday the 13th only" or "every third Tuesday" can't be expressed cleanly; you'll need a wrapper script to filter.