What cron expression runs every 5 minutes?
Last reviewed 30 October 2026
*/5 * * * * runs a command every five minutes, at minute 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55 of every hour. The five fields are minute, hour, day of month, month, and day of week. A star means “every.” */5 in the minute field steps through that field by five, starting at 0. Build the same string in the cron expression generator. The page does not install the job. Copy the expression into the crontab on the machine that will run it.
The five fields
A standard crontab line has five time fields, then the command. Nothing in those five fields is a seconds field.
| Field | Range | What a star means |
|---|---|---|
| Minute | 0–59 | Every minute |
| Hour | 0–23 | Every hour |
| Day of month | 1–31 | Every day of the month |
| Month | 1–12 | Every month |
| Day of week | 0–7 | Every day of the week |
On Vixie cron and on cronie, which is the cron package on most Linux servers, Sunday is both 0 and 7. Monday is 1 and Friday is 5, so 1-5 is Monday through Friday. Some other schedulers accept only 0 for Sunday. Read crontab(5) on the host before you use 7.
The generator writes numbers, not names. Vixie cron also accepts names such as MON and JAN. Names are easier to misread when a job moves to another daemon, so copy the numbers.
The fields are evaluated in the daemon’s timezone. 0 0 * * * is midnight there, not necessarily UTC. Vixie cron documents a CRON_TZ setting for one crontab. Whether the package on your host honors it is a question for that host’s crontab(5), not something this page can see.
Every 10, 15, and 30 minutes
These are the same idea as every five minutes. Each one is aligned to the clock, and each one includes minute 0.
*/5 * * * * # 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
*/10 * * * * # 0, 10, 20, 30, 40, 50
*/15 * * * * # 0, 15, 30, 45
*/30 * * * * # 0 and 30*/5 does not mean “five minutes after you save the crontab.” If you install the line at 10:03, the next run is 10:05, then 10:10. The schedule does not remember the minute you edited the file.
5-59/5 * * * * is a different schedule. The range starts at 5, so minute 0 is not included. Use that only when you really want to skip the top of the hour. For a plain “every five minutes,” use */5 * * * *.
Hourly and daily
Drop the step and pin the minute, or the minute and the hour.
0 * * * * # every hour, at minute 0
0 0 * * * # every day at 00:00
0 9 * * * # every day at 09:00
0 9 * * 1-5 # Monday through Friday at 09:000 * * * * fires 24 times a day, at the top of each hour. 0 0 * * * fires once, at midnight. 0 9 * * 1-5 leaves the day-of-month as a star, so the weekday field is the only day restriction. That is “weekdays at 09:00.” It is not the either-day rule described in why cron runs on the wrong day. That rule starts only when both day fields are restricted. A day field that starts with *, including */2, is not restricted.
How a step is counted
A step is a range plus /n. In the minute field, * is shorthand for 0-59, so */5 is 0 then every fifth minute through 55. Twelve runs an hour.
In the hour field the same pattern is 0 */2 * * *: minute 0 of every second hour, at 00:00, 02:00, 04:00, and so on through 22:00.
The day-of-month field does not start at 0. Its range starts at 1. On Vixie cron and cronie, * in that field is 1-31, so 0 0 */5 * * is midnight on the 1st, 6th, 11th, 16th, 21st, 26th, and 31st. It is not “every date divisible by 5,” which would be the 5th, 10th, 15th, 20th, 25th, and 30th. If the daemon is not cronie, test that list before you trust it. The cron expression generator will show you the five fields. It will not simulate a particular daemon’s calendar.
Mistakes that move the run
Copy the five fields, not the English sentence beside them. Crontab has no use for the words “every five minutes.”
Do not add a seconds field on the front of a crontab line. The five fields would shift one place to the right. Quartz uses six fields, or seven when a year is included, and the first field is seconds. Spring’s cron uses that six-field form. EventBridge also uses six fields, but they are minutes, hours, day-of-month, month, day-of-week, and year, with no seconds field. Quartz and EventBridge both use ? in one of the day fields. A five-field line from this site matches neither shape.
Traditional Vixie cron does not skip a run because the previous process is still going. A job that takes six minutes will overlap itself on */5 * * * *. If the work must not overlap, take a lock inside the command, for example with flock, and keep the schedule as it is. systemd timers and queue workers can behave differently. This warning is about classic cron.
Cron’s environment is small. The PATH it uses is often shorter than the PATH in your login shell. Call the program by its absolute path.
A stored “next run” in an API is often a Unix timestamp, not a cron expression. Read that number on the Unix timestamp converter. Do not paste it into the minute field.
Try it for one cycle
Point a throwaway line at a file you can delete.
*/5 * * * * date >> /tmp/cron-every-5.logWait until two lines have been written. The minutes should be five apart, and each minute should be divisible by 5. Then delete the line. Where cron itself logs the start of a job depends on the distro: some use journalctl -u cron, others still write to syslog. Use the log your host actually keeps.
Common questions
Does */5 include minute 0?
Yes. The list is 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55.
Does the job run again inside that minute?
No. Five-field cron has no seconds field. The daemon starts the command once, when the minute begins. It does not repeat at second 10, 20, and so on.
Is this the same syntax as a systemd timer?
No. systemd timers use OnCalendar, which is a different language. Do not paste */5 * * * * into a timer unit. Check the expression you actually want with systemd-analyze calendar on that machine.
Will GitHub Actions run this every five minutes?
GitHub documents a five-field schedule, and its shortest interval is five minutes. This guide does not claim that GitHub implements every Vixie rule, including the day-field rule in the other guide. Read GitHub’s current schedule docs before you depend on a line.
Can I start the five minutes from now?
Not with */5. The step is locked to the clock. To wait five minutes from an arbitrary moment, sleep inside a process, or use a queue’s delay. Cron will still wake up on minutes 0, 5, 10, and the rest.