How to use Cron Expression Generator
What it does & when you need it
You need a cron expression for a scheduled job — a backup, a cache purge, a nightly report — and you want to be sure it fires when you think it does. This tool builds an expression from common presets or your own edits and shows the next five times it will run in your local time, so you can sanity-check the schedule before pasting it into a crontab, a CI config, or a Kubernetes CronJob.
How to use
- Click a preset (for example Every 15 minutes) or type your own expression in the field.
- The plain-English description and the next 5 runs update live. A red message appears if the expression is invalid.
- Press Copy expression (or
Ctrl/Cmd+Enter) to copy it.
Things worth knowing
The five fields, in order. A standard cron line is minute hour day-of-month month day-of-week. So 0 9 * * 1-5 means "at 09:00, every day,
every month, on weekdays" — minute 0, hour 9, days-of-month any, months any,
weekdays Monday–Friday. Weekday 0 and 7 both mean Sunday.
Steps, ranges, and lists. */5 in the minute field means "every 5 minutes"
(minutes 0,5,10,…), a shorthand for a step over the whole range. 1-5 is a
range, 1,15 is a list, and they combine: 0,30 9-17 * * * runs on the hour and
half-hour between 9am and 5pm.
The day-of-month / day-of-week trap. When both the day-of-month and
day-of-week fields are restricted (neither is *), cron runs when either
matches — an OR, not an AND. So 0 0 13 * 5 fires on the 13th and every Friday,
not only on Friday the 13th. Leave one field as * unless you really want the
union.
Five fields vs six. The classic Unix/Vixie cron this tool targets has five fields. Quartz (Java) and some other schedulers prepend a seconds field for six, so a Quartz expression pasted here will be misread by one field. Know which dialect your scheduler speaks.
Daylight saving time will surprise you. Cron runs in the server's local timezone. On the spring-forward day, a job scheduled for 02:30 never runs (that hour does not exist); on fall-back it may run twice. For anything time-critical, schedule in UTC or pick an hour that DST never skips. Because the epoch has no timezone, cross-checking a run against a Unix timestamp is a reliable way to reason about absolute time, and if your job emits JSON logs you can tidy them with the JSON formatter.