Cron Expression Examples: Common Schedules with Field Breakdowns
2026-06-17
Copy-ready cron examples for every 5 minutes, hourly, daily, weekdays, and monthly schedules, each with a full five-field breakdown.
A cron expression has five fields read left to right in this order: minute hour day-of-month month day-of-week. To run a job every 5 minutes use */5 * * * *. To run it at 9:00 on weekdays use 0 9 * * 1-5. To run it hourly use 0 * * * *. To run it at midnight on the 1st of each month use 0 0 1 * *. Each star means "every value" for that field, so the trick is filling in only the fields you want to pin down and leaving the rest as *.
Most scheduling mistakes come from misreading which field is which, or from leaving a field as * when it should hold a value. This guide gives you the common schedules as copy-ready expressions, then breaks every one down field by field so you can adapt them with confidence. If you would rather see any expression turned into plain English with its next run times, paste it into the cron expression explainer and read it back before you ship it.
How the Five Fields Work
Standard cron uses exactly five space-separated fields. Their order never changes:
minute hour day-of-month month day-of-week
* * * * *
- minute: 0 to 59
- hour: 0 to 23 (24-hour clock)
- day-of-month: 1 to 31
- month: 1 to 12
- day-of-week: 0 to 7, where both 0 and 7 mean Sunday
A few symbols do most of the work. * matches every value. A step like */5 means "every 5 units" starting from the lowest value. A range like 1-5 matches a span. A list like 1,15 matches specific values. Pin a field to a single number to fix it, and leave it as * when you do not care about it.
Worked Schedule Examples
Every 5 minutes
*/5 * * * *
- minute:
*/5(0, 5, 10, ... 55) - hour:
*(every hour) - day-of-month:
*(every day) - month:
*(every month) - day-of-week:
*(every weekday)
The */5 step fires at minute 0 and then every 5 minutes after, so the job runs 12 times an hour, around the clock. Swap the 5 for any divisor of 60 to change the interval, for example */15 for every quarter hour.
Every hour
0 * * * *
- minute:
0(on the hour) - hour:
*(every hour) - day-of-month:
* - month:
* - day-of-week:
*
Pinning the minute to 0 while leaving the hour as * is what makes this hourly. The job runs once per hour, exactly at the top of the hour. A common mistake is writing * * * * *, which actually runs every minute, not every hour.
Daily at a set time
30 14 * * *
- minute:
30 - hour:
14(2 PM on a 24-hour clock) - day-of-month:
* - month:
* - day-of-week:
*
This runs once a day at 14:30. Fix both minute and hour, then leave the three date fields as * so the schedule repeats every day. For midnight every day use 0 0 * * *. Remember that cron times follow the server clock, so check whether your host runs in UTC or local time.
Weekdays only at a set time
0 9 * * 1-5
- minute:
0 - hour:
9(9 AM) - day-of-month:
* - month:
* - day-of-week:
1-5(Monday through Friday)
The day-of-week range 1-5 covers Monday (1) to Friday (5), so this fires at 9:00 only on working days and skips the weekend. Day-of-week counts from 0 for Sunday, which is why Monday is 1. For Monday, Wednesday, and Friday instead, use a list: 0 9 * * 1,3,5.
Monthly on a set day
0 0 1 * *
- minute:
0 - hour:
0(midnight) - day-of-month:
1(the 1st) - month:
* - day-of-week:
*
This runs at 00:00 on the 1st of every month. Pinning day-of-month to a number while keeping month as * gives you a monthly schedule. To run on the 15th at 8 AM instead, use 0 8 15 * *. Take care with day-of-month values above 28, since not every month has a 29th, 30th, or 31st.
When two date fields are both set, such as day-of-month and day-of-week together, most cron implementations run the job when either matches, which surprises people. If you need a precise rule, test it with the cron expression explainer and read its next run times before relying on it.
Quick Reference
- Every 5 minutes:
*/5 * * * * - Every hour on the hour:
0 * * * * - Daily at 2:30 PM:
30 14 * * * - Weekdays at 9 AM:
0 9 * * 1-5 - Monthly at midnight on the 1st:
0 0 1 * *
Copy any of these, change only the fields you need, and you will avoid most of the guesswork.
FAQ
What is the field order in a cron expression?
The five standard fields are minute, hour, day-of-month, month, day-of-week, read from left to right. An optional sixth field for seconds appears at the front in some systems, so check your scheduler's docs if you see six fields.
How do I write a cron job that runs every 5 minutes?
Use */5 * * * *. The */5 in the minute field means every 5 minutes, and the four stars after it mean every hour, every day, every month, and every weekday.
Why does my weekday schedule also run on Sunday?
Day-of-week counts Sunday as both 0 and 7. If you wrote a range or list that includes 0 or 7, Sunday will match. Use 1-5 for Monday through Friday only, with no 0 and no 7.
What is the difference between day-of-month and day-of-week?
Day-of-month is a calendar date (1 to 31), while day-of-week selects weekdays (0 to 7). If you set both to real values, most cron systems run the job when either one matches, not only when both match.
Does cron use my local time or UTC?
Cron uses the clock of the server or service running it, which is often UTC. Always confirm the host's time zone, then adjust your hour field accordingly. The cron expression explainer shows the next run times so you can sanity-check the timing.
Explore related tools in the tools directory.