Cron Generator
Build and read cron schedules with confidence.
0–59
0–23
1–31
1–12 or JAN–DEC
0–7 or SUN–SAT
Something went wrong
This schedule runs
| # | When | Relative |
|---|
Processed locally in your browser. Nothing you type here is sent to our servers.
What is a cron expression?
A cron expression describes a recurring schedule in five fields:
minute, hour, day of month, month, day of week. Each field is
either a specific value, a range, a list, a step, or * meaning “every”.
The job runs whenever the current time matches every field at once.
So 0 9 * * 1-5 reads as: minute 0, hour 9, any day of the month, any
month, Monday to Friday — nine o'clock on weekdays.
Which cron syntax this supports
This tool generates and validates standard five-field Unix cron,
the syntax used by crontab, cronie, Vixie cron and most Linux
distributions. Being explicit matters, because the dialects differ:
- Not supported: a leading seconds field. Six fields means Quartz or Spring, and
crontabwill reject it. The validator says so specifically rather than reporting a generic error. - Not supported: Quartz extensions such as
L(last),W(nearest weekday) and#(nth weekday). - Supported:
*, ranges (1-5), lists (1,15,30), steps (*/15,0-30/5), and the three-letter month and day names. - Supported: the
@daily,@hourly,@weekly,@monthlyand@yearlyshortcuts.
The two rules that catch people out
Sunday is both 0 and 7. Most implementations accept either, so
0-6 and 1-7 both cover a full week — but from different
starting days.
Day of month and day of week are OR-ed, not AND-ed. This is the
genuinely surprising one. If both fields are set to something other than
*, the job runs when either matches. So
0 0 13 * 5 runs on every 13th and on
every Friday — not only on Friday the 13th. To require both, you must check
the day inside the job itself.
How to use it
- Edit any builder field, or type an expression directly — the two stay in sync.
- Read the plain-English description to confirm it says what you meant.
- Check the next five run times, which is the fastest way to catch a mistake.
- Switch between local time and UTC — servers almost always run cron in UTC.
Common use cases
- Scheduling a nightly backup, a cache warm or a cleanup job.
- Configuring a Kubernetes CronJob or a CI schedule.
- Working out what an inherited expression in an old crontab actually does.
- Checking whether a schedule will fire when you think it will, across a daylight-saving change.
Limitations
- Predicted run times assume the schedule runs in the selected time zone. A server running in UTC will fire at different local times than the local preview suggests.
- Daylight-saving transitions are genuinely ambiguous for cron. A job scheduled at 02:30 may be skipped or run twice on the changeover day, depending on the implementation.
- The preview assumes the job runs exactly on schedule. Real cron daemons can be late under load, and a missed window is usually not made up.
- Non-standard implementations may accept syntax this validator rejects, and vice versa. When in doubt, test against the system that will actually run it.