Every 5 Minutes
*/5 * * * * 0 */5 * * * ? */5 * * * * */5 * * * ? * 0 */5 * * * * */5 * * * * Runs every 5 minutes — at :00, :05, :10, …, :55 of every hour, every day.
Use in your stack
# Run every 5 minutes
*/5 * * * * /usr/local/bin/my-job.sh
{
"schedule": {
"cron": "0 */5 * * * ?",
"timezone": "UTC"
}
}
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: my-job
image: my-image:latest
restartPolicy: OnFailure
# AWS EventBridge schedule expression
cron(*/5 * * * ? *)
@Scheduled(cron = "0 */5 * * * *")
public void runEveryFiveMinutes() {
// ...
}
on:
schedule:
- cron: '*/5 * * * *' # every 5 minutes (UTC)
Next runs
Pick a timezone to see when this expression fires next.
Next 10 runs
- 012026-07-03T16:55:00.000Z
- 022026-07-03T17:00:00.000Z
- 032026-07-03T17:05:00.000Z
- 042026-07-03T17:10:00.000Z
- 052026-07-03T17:15:00.000Z
- 062026-07-03T17:20:00.000Z
- 072026-07-03T17:25:00.000Z
- 082026-07-03T17:30:00.000Z
- 092026-07-03T17:35:00.000Z
- 102026-07-03T17:40:00.000Z
Variations
Common use cases
- Polling an external API for changes.
- Refreshing a cache or computed view.
- Health-checking a service from a monitoring system.
- Aggregating metrics into a time-series store.
- Running a lightweight queue worker.
Gotchas
- On GitHub Actions, the minimum schedule interval is 5 minutes — `*/5 * * * *` is the fastest you can go natively.
- On AWS EventBridge, this needs an extra year field: `*/5 * * * ? *`.
- Quartz uses 6 fields: `0 */5 * * * ?` (note the seconds field at the front and the `?` for day-of-week).
- If hundreds of jobs all use `*/5 * * * *`, they fire at the same wall-clock instant — adding random jitter avoids the thundering-herd problem.
The expression */5 * * * * is shorthand for “every minute that’s divisible by 5 — that is, :00, :05, :10, :15, …, :55.” Read field by field:
- Minute
*/5— every 5th minute starting from 0 - Hour
*— every hour - Day of month
*— every day - Month
*— every month - Day of week
*— every weekday
You’ll see this expression in roughly the same form across every cron-flavored scheduler, but the exact syntax varies by dialect — see the equivalents above.
Frequently asked questions
What does `*/5 * * * *` mean in cron?
`*/5` in the minute field means "every 5th minute starting from 0." The remaining four asterisks mean any hour, any day of the month, any month, and any day of the week. The job fires at :00, :05, :10, :15, :20, :25, :30, :35, :40, :45, :50, and :55 of every hour.
Can I run a cron job every 5 minutes on GitHub Actions?
Yes — `on.schedule.cron: '*/5 * * * *'` runs your workflow every 5 minutes (in UTC). 5 minutes is the minimum interval GitHub Actions supports. Note that scheduled workflows can be delayed during periods of high load.
How do I write "every 5 minutes" in AWS EventBridge?
EventBridge requires 6 fields (with year) and uses `?` for the unused day-of-week or day-of-month field: `cron(*/5 * * * ? *)`. EventBridge cron expressions are always interpreted in UTC.
What is the Quartz equivalent of `*/5 * * * *`?
Quartz uses 6 or 7 fields with seconds at the front: `0 */5 * * * ?` runs every 5 minutes (with a `?` for day-of-week because day-of-month is set). The seconds field is `0` so the job fires at the top of each 5-minute mark.
Won't this overlap if the job takes longer than 5 minutes to run?
Yes — most cron implementations will spawn a new instance while the previous one is still running. Either guard the job with a lockfile or `flock`, set a max-runtime, or pick a longer interval. Kubernetes CronJob has `concurrencyPolicy: Forbid` to skip overlapping runs.
Browse all cron patterns
Every schedule Cronuru documents, with its expression and code snippets for six dialects.