Cron Expression Generator
A cron expression has five fields: minute, hour, day of month, month and day of week. "0 9 * * 1-5" means at 09:00, on Monday through Friday, and "*/15 * * * *" means every 15 minutes.
How to use
- Type a cron expression into the top box, pick a preset, or fill in the five fields one by one. The box and the fields stay in sync.
- Use the weekday buttons to choose days of the week without typing numbers.
- Read the plain English meaning under Result, then check the next 5 run times. Switch between your local time zone and UTC to match your server.
- Press Copy to copy the expression for your crontab, CI schedule or job scheduler.
How it works
A standard cron expression has five fields separated by spaces: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or JAN-DEC) and day of week (0-6 or SUN-SAT, where 0 and 7 both mean Sunday).
Each field accepts a star for every value, a list such as 1,15, a range such as 9-17, and a step such as */5 (every 5th value) or 10-30/5. Names are allowed for months and weekdays, and the macros @hourly, @daily, @weekly, @monthly and @yearly expand to their five-field form.
When both day of month and day of week are restricted, as in "0 0 13 * 5", cron runs the job when either one matches, so that example runs on every 13th and on every Friday. If either of the two starts with a star, both must match.
The next run times are found by walking forward day by day, keeping days that match the month and day rules, then listing the matching hours and minutes. A schedule that can never match, such as February 31, shows no upcoming runs. Local times that do not exist because of a daylight saving jump are skipped.
Common schedules
| Expression | Meaning |
|---|---|
| * * * * * | Every minute |
| */5 * * * * | Every 5 minutes |
| 0 * * * * | Every hour, on the hour |
| 0 0 * * * | Every day at midnight |
| 0 9 * * 1-5 | Weekdays at 09:00 |
| 30 8 * * 1 | Mondays at 08:30 |
| 0 0 1 * * | First day of every month |
| 0 0 1 1 * | Every January 1st |
FAQ
What does */5 mean in cron?
A step. In the minute field, */5 means every 5th minute: 0, 5, 10 and so on up to 55. It starts from the first value of the field, so */5 in the hour field means hours 0, 5, 10, 15 and 20.
How do I run a job every weekday at 9 AM?
Use 0 9 * * 1-5. Minute 0, hour 9, any day of month, any month, Monday to Friday.
Why does my job run on more days than I expected?
When you set both a day of month and a day of week, cron runs on days matching either. To run on the first Monday only, use a script check inside the job, because standard cron cannot express it.
Which time zone does cron use?
The time zone of the machine or service that runs it, often UTC on cloud schedulers. Use the Local and UTC buttons to see both.
Does this support six or seven fields, or L and # symbols?
No. This tool covers the standard five-field format used by crontab, GitHub Actions and most Linux schedulers. Quartz and AWS formats add seconds, years and symbols like ? L W and #, and are not supported.
Is anything sent to a server?
No. Parsing, the explanation and the run times are all computed in your browser.