cronuru
Pattern

Every 15 Minutes

*/15 * * * *
0 */15 * * * ?
*/15 * * * *
*/15 * * * ? *
0 */15 * * * *
*/15 * * * *

Runs every 15 minutes — at :00, :15, :30, :45 of every hour, every day. This is also the every-quarter-hour schedule; the two names describe the same expression.

Use in your stack

# Run every 15 minutes
*/15 * * * * /usr/local/bin/aggregate.sh
{ "cron": "0 */15 * * * ?", "timezone": "UTC" }
apiVersion: batch/v1
kind: CronJob
metadata:
  name: aggregate
spec:
  schedule: "*/15 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: aggregate
            image: my-image:latest
          restartPolicy: OnFailure
cron(*/15 * * * ? *)
@Scheduled(cron = "0 */15 * * * *")
public void every15Minutes() { /* ... */ }
on:
  schedule:
    - cron: '*/15 * * * *'

Next runs

Pick a timezone to see when this expression fires next.

Next 10 runs
  1. 012026-08-19T14:30:00.000Z
  2. 022026-08-19T14:45:00.000Z
  3. 032026-08-19T15:00:00.000Z
  4. 042026-08-19T15:15:00.000Z
  5. 052026-08-19T15:30:00.000Z
  6. 062026-08-19T15:45:00.000Z
  7. 072026-08-19T16:00:00.000Z
  8. 082026-08-19T16:15:00.000Z
  9. 092026-08-19T16:30:00.000Z
  10. 102026-08-19T16:45:00.000Z

Variations

*/5 * * * *

Every 5 minutes

*/10 * * * *

Every 10 minutes

*/20 * * * *

Every 20 minutes

*/30 * * * *

Every 30 minutes

0 * * * *

Every hour

Common use cases

  • Generating periodic summary reports.
  • Rebuilding lightweight caches or precomputed views.
  • Aggregating metrics into a time-series store on a quarter-hour boundary.
  • Resyncing data from a slower external system.

Gotchas

  • Aligns to clock quarter-hours, not to when you added the job.
  • "Every quarter hour" and "every 15 minutes" are the same schedule — `*/15 * * * *` covers both. The quarter-hour framing is just the clock-face name for it, and it holds because the firings land on :00, :15, :30 and :45 rather than 15 minutes after whenever the job was installed.
  • To run on the quarter-hour beat but *offset* from it — :05, :20, :35, :50 — use `5-59/15 * * * *`. A bare `*/15` can't be shifted; see [cron offset](/guides/cron-offset).
  • AWS EventBridge: `*/15 * * * ? *` (6 fields, ? placeholder).
  • Quartz: `0 */15 * * * ?` — seconds at the front.

*/15 * * * * runs on the clock’s natural quarter-hour beat. It’s one of the most predictable cron expressions and aligns well with dashboards, reports, and audit windows that humans think about in 15-minute increments.

If you came here looking for “every quarter hour,” this is it — the two phrasings describe the same expression, and the quarter-hour name is accurate because the firings land on the clock’s quarter marks rather than 15 minutes after installation.

That predictability has one cost worth knowing about: */15 anchors at minute 0, so your job shares :00 with every */5, */10, */30 and hourly job on the same host. If the top of the hour is congested, 5-59/15 * * * * keeps the identical four-times-an-hour cadence at :05, :20, :35 and :50. See cron offset for the general technique.

Frequently asked questions

What does `*/15 * * * *` mean?
`*/15` in the minute field means "every 15th minute starting from 0." So the job runs at :00, :15, :30, and :45 of every hour. The other four asterisks mean any hour, any day of the month, any month, any day of the week.
Will the job always fire on the quarter-hour?
Yes — `*/15` is anchored at minute 0 by the spec, not at "when you started the job." If you add a `*/15 * * * *` cron at 9:07, the first run is at 9:15, the next at 9:30. There is no "every 15 minutes from now" mode in standard cron.
How is this different from `0,15,30,45 * * * *`?
Functionally identical. `*/15` is shorthand for the explicit list `0,15,30,45`. Either form is accepted by every cron dialect. Use whichever your team finds clearer.
What is the cron expression for every quarter hour?
`*/15 * * * *` — "every quarter hour" and "every 15 minutes" are two names for the same schedule. It fires four times an hour, on the quarter-hour marks :00, :15, :30 and :45, which is exactly what the clock-face phrasing implies. The equivalent explicit form is `0,15,30,45 * * * *`, and in Quartz it's `0 */15 * * * ?`.
How do I run every 15 minutes but offset from the quarter hour?
Use `5-59/15 * * * *`, which fires at :05, :20, :35 and :50. A bare `*/15` always anchors at minute 0, so the only way to move the phase is to replace the `*` with a range whose lower bound is your offset. This is the standard technique for keeping a quarter-hour cadence while staying clear of the crowd of jobs that all fire at :00 — see the [cron offset guide](/guides/cron-offset).
What's the Quartz equivalent?
Quartz needs a seconds field at the front and `?` to break the day-of-month/day-of-week tie: `0 */15 * * * ?`. The seconds `0` means "fire at the top of each 15-minute mark," not at random seconds within it.

More minutes schedules

Other patterns on the same cadence — or browse every schedule.