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.

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-07-03T17:00:00.000Z
  2. 022026-07-03T17:15:00.000Z
  3. 032026-07-03T17:30:00.000Z
  4. 042026-07-03T17:45:00.000Z
  5. 052026-07-03T18:00:00.000Z
  6. 062026-07-03T18:15:00.000Z
  7. 072026-07-03T18:30:00.000Z
  8. 082026-07-03T18:45:00.000Z
  9. 092026-07-03T19:00:00.000Z
  10. 102026-07-03T19:15:00.000Z

Variations

*/5 * * * *

Every 5 minutes

*/10 * * * *

Every 10 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.
  • 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.

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'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.

Browse all cron patterns

Every schedule Cronuru documents, with its expression and code snippets for six dialects.