Cron Expression Generator
Build a cron schedule from choices, read it in plain English and see the next runs.
About this tool
Pick a schedule type and its options — the minute, the time of day, the weekdays, the day of the month — and the cron expression is written for you, described in plain English and checked against the next six run times in your local time. Switch to Custom to type or paste any expression with ranges, lists and steps.
Cron syntax, and the traps
A cron expression has five fields: minute (0–59), hour (0–23), day of the month (1–31), month (1–12) and day of the week (0–6, Sunday is 0 or 7). An asterisk means every value, a comma lists values (1,15), a hyphen gives a range (1-5 is Monday to Friday) and a slash a step (*/15 is every fifteen minutes). So 0 9 * * 1-5 runs at 09:00 on weekdays and 30 2 1 * * at 02:30 on the first of each month. The same syntax drives crontab, GitHub Actions, Kubernetes CronJobs, Vercel and most job schedulers. Two traps catch people. First, time zones: many cloud schedulers, including GitHub Actions, run in UTC, so 0 9 * * * fires at 09:00 UTC, not local time. Second, when both day-of-month and day-of-week are restricted, standard cron runs on either, not both — the next-run list makes that visible. Seconds fields and Quartz extensions such as L, W and # are not supported. The cron parser explains existing expressions, Cron expressions explained: the five fields, the special characters, and the traps covers the syntax in depth, the time zone converter handles UTC, and the timestamp converter reads log times.
Frequently asked questions
What does */15 * * * * mean?
Every 15 minutes: at minutes 0, 15, 30 and 45 of every hour of every day.
How do I run a job every weekday at 9am?
0 9 * * 1-5 — minute 0, hour 9, any day of month, any month, Monday to Friday. Remember your scheduler's time zone.
Why does my job run on more days than expected?
If both the day-of-month and day-of-week fields are set, standard cron matches either. Use * in one of them.
Is anything sent to a server?
No. The expression is built and checked in your browser.