Cron Expression Generator
Write or build a cron schedule, read it back in plain English, and check the next run times in your time zone and UTC before you deploy it.
Open source on GitHubCron expression
Minute
Hour
Day of month
Month
Day of week
Presets
Schedule
“Every 15 minutes past every hour from 9 through 17 on Monday through Friday”
Next 5 runs (cron running in your time zone)
Calculating…
*/15
0–59
9-17
0–23
*
1–31
*
1–12
1-5
0–7
Runs entirely in your browser. Nothing you paste here is uploaded or stored.
The five cron fields. Minute, hour, day of month, month and day of week.
| Field | Allowed values | Special characters |
|---|---|---|
| Minute | 0–59 | * , - / |
| Hour | 0–23 | * , - / |
| Day of month | 1–31 | * , - / |
| Month | 1–12 or JAN–DEC | * , - / |
| Day of week | 0–7 or SUN–SAT (0 and 7 are Sunday) | * , - / |
Special characters and shortcuts. What each symbol means, with examples.
| Syntax | Meaning | Example |
|---|---|---|
| * | Every value | * * * * * runs every minute |
| , | A list of values | 0 9,17 * * * runs at 09:00 and 17:00 |
| - | A range of values | 0 9 * * 1-5 runs at 09:00 Monday to Friday |
| / | A step | */15 * * * * runs every 15 minutes; 0-30/10 means 0, 10, 20, 30 |
| @hourly | Same as 0 * * * * | At minute 0 of every hour |
| @daily / @midnight | Same as 0 0 * * * | Every day at 00:00 |
| @weekly | Same as 0 0 * * 0 | Every Sunday at 00:00 |
| @monthly | Same as 0 0 1 * * | The 1st of every month at 00:00 |
| @yearly / @annually | Same as 0 0 1 1 * | 1 January at 00:00 |
More free tools. Free, open source, no sign-up. See all tools · Source on GitHub
Frequently asked questions
What are the five fields in a cron expression?
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 job runs whenever the current time matches every field.
How do day of month and day of week work together?
This trips up a lot of people. If both fields are restricted (neither starts with *), standard cron runs the job when either one matches. So 0 0 13 * 5 runs on the 13th of every month and on every Friday, not only on Friday the 13th. If one of them is *, only the other one applies.
Which time zone does cron use?
Classic cron uses the server’s system time zone. Many hosted schedulers (GitHub Actions, Vercel cron jobs and AWS EventBridge, for example) evaluate schedules in UTC. Use the Local / UTC switch to see when the job will actually fire in each case.
Why does my expression have six or seven fields?
Quartz, Spring and some cloud schedulers add a seconds field at the start and sometimes a year at the end, and support extra characters like ? L W and #. This tool follows standard 5-field crontab syntax, so drop the seconds field to check those schedules here.
How do I run a job every 5 minutes?
Use */5 * * * *. The step value divides the field’s full range, so it runs at :00, :05, :10 and so on. Steps restart each hour, which is why */7 runs at :56 and then again at :00.