Cron Every 5 Minutes

To run cron every 5 minutes, use */5 * * * *. Change the interval below for every 10, 15, 20 or 30 minutes, and see the next runs and the platform limits that apply.

Last updated: October 8, 2026

The short answer

The cron expression to run every 5 minutes is */5 * * * *. The slash sets a step of 5 in the minute field, so the job runs at minutes 0, 5, 10 and so on up to 55, in every hour of every day.

*/5 * * * *
Minute*/5
Hour*
Day of month*
Month*
Day of week*

Runs every 5 minutes.

Pick the interval

Choose an interval or type your own, then pick the platform to get the matching syntax and the next run times.

How */5 * * * * works

Only the minute field has a value. The slash step */5 means "every fifth value starting at the first one the field allows", which for minutes is 0, so the matches are 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55. The four other fields are *, so no other condition applies.

The step counts from the top of the hour, not from the moment you deploy. If you save the job at 10:03, its first run is at 10:05. See the cron special characters reference for how steps behave in each field.

Cron every 10, 15, 20 and 30 minutes

The same pattern gives every common interval. These all divide an hour evenly, so the gap between runs is always the same.

ExpressionWhat it doesUse
*/5 * * * *Runs every 5 minutes.
Minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55.
Open
*/10 * * * *Runs every 10 minutes.
Minutes 0, 10, 20, 30, 40, 50.
Open
*/15 * * * *Runs every 15 minutes.
Minutes 0, 15, 30, 45.
Open
*/20 * * * *Runs every 20 minutes.
Minutes 0, 20, 40.
Open
0,30 * * * *Runs at minutes 0 and 30 of every hour.
Minutes 0, 30.
Open

Intervals of 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30 and 60 minutes divide an hour evenly. For other values, read the next section.

Intervals that do not divide 60

Cron has no memory of the last run. A step restarts at minute 0 of every hour, so */7 * * * * runs at minutes 0, 7, 14, 21, 28, 35, 42, 49, 56 and then again at 0, which leaves a 4 minute gap before the hour. CronWave flags this: Every 7 minutes does not divide an hour evenly. Runs happen at :00, :07, :14, :21, :28... then restart at :00, so the last gap each hour is shorter.

For a true 7 or 45 minute interval, run the job every 1 or 5 minutes and let it decide whether enough time has passed, or use a scheduler with interval support such as an EventBridge rate expression.

Offset the start to avoid the busy minute

Everyone schedules on the hour, so :00 and :05 are crowded. GitHub says high-load periods include the start of every hour and that runs can be delayed or dropped. A range with a step moves your job to quieter minutes while keeping the interval:

ExpressionWhat it doesUse
3-58/5 * * * *Runs every 5 minutes from minute 3 to 58 of every hour.
Minutes 3, 8, 13 and so on. Keeps clear of the :00 and :05 crowd.
Open

Cron every 5 minutes on each platform

The same schedule, written by CronWave for each platform, with the one thing to watch on each.

PlatformExpressionNote
Linux / Unix*/5 * * * *Runs in the system time zone. Linux guide
Kubernetes*/5 * * * *Pair with concurrencyPolicy: Forbid. Kubernetes guide
GitHub Actions*/5 * * * *Five minutes is the shortest interval GitHub allows, and runs can be late. GitHub Actions guide
Vercel*/5 * * * *Not on the Hobby plan, which allows one run per day. Vercel guide
AWS EventBridgecron(*/5 * * * ? *)A rate expression, rate(5 minutes), is the simpler way to say this. AWS guide
Quartz0 */5 * * * ?The leading 0 is the seconds field. Quartz guide

Stop runs from overlapping

If a run takes longer than the interval, a second one starts before the first finishes. That is the most common failure of short schedules. Pick the guard for your platform:

  • Linux: wrap the command in flock -n /tmp/job.lock so a second copy exits immediately.
  • Kubernetes: set concurrencyPolicy: Forbid, which skips a run while the previous Job is still running.
  • GitHub Actions: use a concurrency group so a new run waits or replaces the old one.
  • Vercel: use a lock such as a Redis lock, shorten the job, or lengthen the interval.

Also ask whether polling every five minutes is the right design. A webhook or queue reacts immediately and costs nothing between events.

Sources and further reading