Cron Expression Generator
Processed Client SideBuild a cron schedule field by field or paste one you already have, then read it back in plain English and see exactly when it will fire next. Supports the standard 5-field crontab format and the 6-field Quartz/Spring form with seconds.
Bookmark this tool now — skip the search next time you need it.
About Cron Expression Generator
This tool runs entirely in your browser. Whatever you paste is processed on your own device and is never uploaded, logged, or sent to any server.
The Cron Expression Generator builds and explains crontab schedules. Work forwards by choosing what each field should do and watch the expression assemble itself, or work backwards by pasting an expression you inherited and reading it back in plain English. Either way you get a field-by-field breakdown and the next ten times the job will actually fire, in your local timezone or UTC — which is the fastest way to catch a schedule that says something different from what you meant. It covers the standard 5-field crontab syntax, the 6-field Quartz and Spring form with a leading seconds field, the @daily style shorthands, and the day-of-month versus day-of-week rule that quietly makes a job run far more often than intended.
Key features
- Two-way editing — build the schedule with per-field controls, or paste a raw expression and have the builder decode it
- Plain-English description in the style of crontab.guru: "At 09:00 on every day-of-week from Monday through Friday"
- Next 10 run times with a relative countdown, shown in your local timezone or UTC
- Supports the full field syntax: wildcards, single values, lists (1,15), ranges (MON-FRI), and steps (star-slash-5, 0-20/2)
- Accepts three-letter month and day names (JAN, MON) and the Quartz "?" placeholder
- Handles the 6-field Quartz/Spring form with a leading seconds field, and switches to it automatically when you paste one
- Expands the named shorthands — @daily, @hourly, @weekly, @monthly, @yearly — and shows what they stand for
- Sixteen ready-made presets for the schedules people actually write, from every 5 minutes to quarterly
- Warns about the day-of-month / day-of-week OR rule that trips almost everyone up
- Per-field breakdown table showing the raw value, its meaning, and the legal range
- Runs entirely in your browser — nothing is uploaded
How to use it
- Pick a preset to start from, or leave the default and build from scratch.
- For each field choose a mode — Every, Every N, Specific, Range, or Raw — and fill in the values. The expression at the top updates as you go.
- Switch to the Expression tab to type or paste a cron string directly; the builder decodes it when you switch back.
- Read the plain-English sentence and the field breakdown on the right to confirm it means what you intended.
- Check the next 10 run times. If they are not what you expected, the expression is wrong — not the calendar.
- Copy the expression and paste it into your crontab, Kubernetes CronJob, GitHub Actions schedule, or scheduler of choice.
Tips & common mistakes
- The single biggest cron gotcha: when both day-of-month and day-of-week are restricted, standard cron runs the job when EITHER matches, not both. "0 0 13 * 5" fires on the 13th AND on every Friday. The tool warns you when your expression hits this.
- Steps do not mean "every N from now" — they mean "every Nth value of the field". A schedule of star-slash-40 in the minute field fires at :00 and :40, then jumps back to :00, so the gap is 40 minutes and then 20.
- Cron has no "every 2 days" — the day-of-month step restarts each month, so star-slash-2 skips a beat across month boundaries of odd length.
- Crontab runs in the server's timezone, not yours. Toggle the UTC switch to see the schedule the way a UTC-configured server will.
- Daylight-saving transitions can make a daily job run twice or not at all. Scheduling between 03:00 and 04:00 local time avoids both edges in most regions.
- The 6-field form with seconds is a Quartz and Spring extension. Plain Unix/Vixie cron only takes 5 fields and will reject a 6-field line.
- Kubernetes CronJob, AWS EventBridge, and GitHub Actions all use the 5-field format, but AWS requires a 6th year field and uses "?" where the other field is set — check your platform's docs before pasting.