Cron expression for every 15 minutes
*/15 * * * *Four runs an hour, at :00, :15, :30 and :45, on the quarter hour.
Runs when: every 15 minutes; every hour; every day of month; every month; any day of week.
Change it in the cron expression generatorHow the five fields read
| Field | Value | Reads as |
|---|---|---|
| Minute | */15 | every 15 minutes |
| Hour | * | every value |
| Day of month | * | every value |
| Month | * | every value |
| Day of week | * | every value |
The next five runs
What people use it for
- Usage and billing roll-ups
- Pulling exchange rates or other slow-moving reference data
- Backing up transaction logs on a small database
cron and rate() are not the same schedule
On AWS EventBridge you can write this as cron(0/15 * * * ? *) or as rate(15 minutes). The cron form is tied to the clock and fires at :00, :15, :30 and :45. The rate form counts from the moment the rule was created, so it can fire at :07, :22, :37 and :52. Pick the one that matches what you need.
Variations of every 15 minutes
| Expression | What it does |
|---|---|
7-59/15 * * * * | Every 15 minutes, offset to :07, :22, :37 and :52. |
*/15 9-17 * * 1-5 | Every 15 minutes during business hours on weekdays. |
*/15 * * * 0,6 | Every 15 minutes, weekends only. |
The same schedule in four tools
Linux crontab
*/15 * * * * /path/to/commandAdd it with crontab -e. It runs in the machine's time zone.
Kubernetes CronJob
spec:
schedule: "*/15 * * * *"
timeZone: "Etc/UTC"
concurrencyPolicy: ForbidtimeZone is stable from Kubernetes 1.27. Without it, the controller's time zone applies. Forbid stops a new run starting while the last one is still going.
GitHub Actions
on:
schedule:
- cron: '*/15 * * * *'Schedules run in UTC from the default branch, and a run can start a few minutes late when GitHub is busy. Scheduled workflows in public repositories are disabled after 60 days without repository activity.
AWS EventBridge
cron(0/15 * * * ? *)EventBridge uses six fields, with a question mark in one of the two day fields, and rules run in UTC. Weekday numbers start at Sunday = 1, so names such as MON are safer than numbers.
Questions about every 15 minutes
- What happens if a run takes longer than 15 minutes?
- The next run starts at the next quarter hour while the first is still going, so two copies overlap. Guard the command with flock, or set concurrencyPolicy: Forbid on a Kubernetes CronJob.
- Is */15 the same as 0,15,30,45?
- Yes. Both fire at :00, :15, :30 and :45.
Nearby schedules
- Cron expression for every 10 minutes: Six runs an hour.
- Cron expression for every 30 minutes: Twice an hour, on the hour and half hour.
- All schedules and the generator
Scheduling jobs, pipelines and cloud infrastructure is part of my DevOps engineering work.