Cron schedule · Updated

Cron every 15 minutes: the */15 * * * * expression and its variants

The cron expression for every 15 minutes, what each field means, business-hours and Quartz variants, the Jenkins H/15 form, and the platform notes to know.

To run a cron job every 15 minutes, use:

*/15 * * * *

It fires at minutes 0, 15, 30 and 45 of every hour: 96 times a day. In a crontab:

*/15 * * * * /usr/local/bin/poll.sh >> /var/log/poll.log 2>&1

What each field means

FieldValueMeaning
Minute*/15every 15th minute, starting at 0
Hour*every hour
Day of month*every day
Month*every month
Day of week*every day of the week

Variants

ScheduleExpression
Every 15 minutes, written out0,15,30,45 * * * *
Every 15 minutes, offset to :05, :20, :35, :505-59/15 * * * *
Every 15 minutes from 8:00 to 18:45*/15 8-18 * * *
Every 15 minutes on weekdays, business hours*/15 9-17 * * 1-5
Jenkins, spread across the hourH/15 * * * *
Quartz (seconds first)0 0/15 * * * ?
Spring @Scheduled0 */15 * * * *
AWS EventBridgerate(15 minutes) or cron(0/15 * * * ? *)

Platform notes

  • Linux crontab: local server time. Use absolute paths, since cron's PATH is much shorter than your shell's.
  • GitHub Actions: allowed (the minimum is every 5 minutes). Schedules run in UTC unless you set a timezone, only on the default branch, and may be delayed. See GitHub Actions cron.
  • Kubernetes CronJob: schedule: "*/15 * * * *", interpreted in the kube-controller-manager's time zone unless you set .spec.timeZone.
  • Cloudflare Cron Triggers: works as written, in UTC. Changes can take up to 15 minutes to reach Cloudflare's network.
  • Vercel: Pro or Enterprise; Hobby is limited to a daily run.
  • Jenkins: H/15 * * * * keeps the 15-minute spacing but picks a stable offset per job, so dozens of jobs don't all start at :00. See Jenkins cron.

Common mistakes

  • *`15 * * `* runs once an hour, at minute 15.
  • *`/15 in the hour field** (0 /15 * *`) runs at 00:00 and 15:00 only.
  • Overlap. If a run can last more than 15 minutes, use flock -n or concurrencyPolicy: Forbid.

Running an AI agent every 15 minutes

Fine for a monitor that has to catch something within the hour, but keep the prompt short since it runs 96 times a day. A working-hours window such as */15 9-17 * * 1-5 cuts that to 36 runs a weekday. The scheduled skills page shows how to put a Claude Code or Codex skill on a schedule.

Questions

Is */15 the same as 0,15,30,45?

Yes, in the minute field both give minutes 0, 15, 30 and 45. The list form is handy when you want uneven times, such as 5,20,35,50.

Can I check */15 * * * * on Crontab guru?

Yes. Crontab guru (crontab.guru), the editor GitHub's and Kubernetes' docs both point to, shows a five-field expression in plain English. Quartz expressions with a seconds field and Jenkins H are different dialects, so check those against their own docs.

How do I run every 15 minutes starting at 5 past?

Use 5-59/15 * * * * (or 5,20,35,50 * * * *). The step counts from the start of the range you give it.

Does GitHub Actions run */15 exactly on time?

Not always. Scheduled workflows can be delayed during busy periods, and the top of the hour is the busiest, so the :00 run is the one most likely to start late.

More cron schedules

All cron schedules

Know when your agents need you

Briefkin puts your Claude Code, Codex and Cursor sessions on one board: working, needs you, done or failed. Telegram pings you when one is waiting on you, and scheduled skills post their reports next to them.

Free during the open beta. No card.