Cron Expression Generator
Paste a cron expression and read what it actually does: the five fields become one sentence — “At 09:00 on every day-of-week from Monday through Friday” — and the next five run times are worked out on your own clock. If you are writing a schedule rather than reading one, the dropdowns build the expression for you, and the text box stays in step so you can still hand-edit any field. Steps, ranges, lists and the three-letter names (JAN, MON) are all understood, along with the @daily family of shortcuts. Where cron is genuinely surprising, this page says so out loud: setting both day-of-month and day-of-week makes cron run the job when either one matches, which is the most common reason a schedule fires more often than its author expected. Everything happens in this tab — the parsing, the sentence, and the run times — so nothing you paste is uploaded, and the page keeps working with the network off.
What it means
Build it
0-59
0-23
1-31
1-12 or JAN-DEC
0-7 or SUN-SAT (0 and 7 are Sunday)
Common schedules
| Field | Value | Matches |
|---|---|---|
| Minute | 0 | 0 |
| Hour | 9 | 9 |
| Day of month | * | every value (1-31) |
| Month | * | every value (1-12) |
| Day of week | 1-5 | Monday, Tuesday, Wednesday, Thursday, Friday |
Next 5 runs
Reading your clock…
Times are shown on your own clock. A server usually runs cron in its own time zone, which is often UTC — check the machine before trusting these to the minute.
How to use the cron expression generator
- Type or paste a cron expression: five fields, in the order minute, hour, day-of-month, month, day-of-week.
- Read the sentence under the box and check it says what you meant.
- Or build the expression with the five dropdowns, which write into the same box one field at a time.
- Check the next five run times — shown on your own clock — before you commit the line.
- Copy the expression into your crontab, CI schedule, or Kubernetes CronJob.
Frequently asked questions
- What do the five fields mean?
- In order: minute (0-59), hour (0-23), day-of-month (1-31), month (1-12 or JAN-DEC), and day-of-week (0-7 or SUN-SAT, where both 0 and 7 mean Sunday). A star means every value, a slash sets a step (*/15 is every fifteenth), a dash makes a range (1-5), and commas make a list. Seconds are not a cron field: a six-field expression is Quartz or Spring syntax, not crontab.
- Why does my job run more often than the expression looks like it should?
- Because of the one rule in cron that surprises everybody: when day-of-month and day-of-week are both set to something other than a star, the job runs when either field matches, not when both do. So 0 0 1,15 * 3 runs on the 1st, on the 15th, and on every Wednesday — roughly six times a month, not twice. If you want an and, leave one of the two fields as a star and narrow the other. This page flags the OR whenever your expression is in that shape.
- Which time zone are the run times in?
- Your own. The list is computed with your browser's time zone, because that is the clock you are reading. The machine that runs the job may not agree: a Linux crontab uses the server's local zone (very often UTC), GitHub Actions schedules are always UTC, and managed schedulers usually let you pick. Check the machine before trusting the times to the minute — the sentence and the field breakdown are the parts that are true everywhere.
- Does it support ?, L, W, and 5#3?
- No, and it says so by name rather than calling your expression invalid. Those come from Quartz, the Java scheduler that Spring and some cloud products use, and standard cron has no equivalent for them. This tool implements the five-field crontab syntax that Vixie cron, cronie, busybox and the container schedulers share, plus the @yearly, @monthly, @weekly, @daily, @hourly and @reboot shortcuts.
- Is my expression sent anywhere?
- No. Parsing, the description, and the run-time calculation all happen in this tab in JavaScript, and the time zone data comes from your own browser rather than from a lookup. Nothing is uploaded, nothing is stored, and the page keeps working offline once it has loaded.
Related tools
Date Calculator
Count the days between two dates, or add and subtract days, weeks, months, and years from any date. Free date calculator, in your browser.
Time Zone Converter
Convert a date and time between any two time zones, with daylight saving handled and a live world clock. Runs in your browser, no signup.
Regex Tester
Test a regular expression against your own text with live match highlighting, a capture-group table, and a replace preview. Runs in your browser.