Run a Cron Job Every 15 Minutes

Cron expression to run a job every 15 minutes. Fires at :00, :15, :30, and :45 of every hour.

Cron Expression
*/15 * * * *
Every 15 minutes

Field-by-Field Breakdown

FieldValueMeaning
Minute*/15every 15 minutes
Hour*every hour
Day of Month*every day of month
Month*every month
Day of Week*every day of week

*/15 * * * * runs 96 times a day on the quarter-hour. It's the default cadence for work that is too expensive to run every minute but too time-sensitive to push out to hourly — think aggregation windows, billing meter rollups, and SLA-bound integrations. The 15-minute boundary also aligns with how most observability tools bucket their dashboards, which makes incident timelines easier to read.

When teams reach for this schedule

Usage-metering rollups for billing

Per-customer event counters can be aggregated every 15 minutes into a `usage_window` row, which keeps the metering pipeline near-real-time without forcing every event write to be transactional. Downstream invoicing reads from the rollup, not the raw stream.

SaaS quota and rate-limit window refresh

Many third-party APIs reset request counters on 15-minute windows. A `*/15` job that fetches your remaining quota and updates a cache lets the application layer reason about headroom without making an extra API call per request.

Heartbeat aggregation for fleet visibility

If you have hundreds of edge agents reporting heartbeats, a `*/15` aggregator that classifies them into healthy/degraded/down keeps the dashboard query cheap (read one summary row) without losing freshness.

What to watch for

  • */15 and 0,15,30,45 are equivalent in standard cron. Use whichever your linter prefers.
  • Quarter-hour boundaries are also when many other crons fire. If your job is sensitive to upstream load (database, third-party API), consider offsetting: 5-59/15 to fire at :05, :20, :35, :50.
  • Long-running 15-minute jobs are the quiet productivity killer — they hide behind the 'looks like real-time' label but actually block the next window. Set a soft timeout of 12 minutes and alert if you hit it.
  • Avoid combining */15 in the minute field with a step in another field unless you've actually computed what fires. Cron's step semantics on combined fields are confusing and easy to get wrong.

Next 5 Scheduled Runs

Computed in UTC. Use the generator to compare UTC with your browser-local time.

  1. 1Wed, Jun 3, 2026, 07:15 PM
  2. 2Wed, Jun 3, 2026, 07:30 PM
  3. 3Wed, Jun 3, 2026, 07:45 PM
  4. 4Wed, Jun 3, 2026, 08:00 PM
  5. 5Wed, Jun 3, 2026, 08:15 PM

Schedule this with TrigRun

Deploy this cron schedule in seconds. Automatic retries, encrypted secrets, full execution history, and native MCP support for AI agents.

Start Scheduling — Free

*/15 * * * *

Frequently Asked Questions

What is the cron expression for every 15 minutes?

*/15 * * * * runs at minutes 0, 15, 30, and 45 of every hour — four times per hour, 96 times per day.

What is the difference between */15 and 0,15,30,45?

They are functionally identical. */15 is shorthand for 0,15,30,45 in the minute field. The step syntax is more readable.

How do I run every 15 minutes only during business hours?

Combine the minute step with an hour range and a weekday range: */15 9-17 * * 1-5 runs every quarter hour from 9 AM through 5:45 PM on Monday through Friday.