Cron Expression for Every 15 Minutes

*/15 * * * *

*/15 * * * * runs at :00, :15, :30 and :45 every hour. The step divides the minute range from zero, so it is exactly equivalent to listing 0,15,30,45.

Next runs, in your timezone

 

Quarter-hour semantics

*/15 always lands on the same four minutes of every hour, machine-wide and fleet-wide. That predictability is usually what you want for reports; for load-sensitive jobs, shift the phase with a range: 7-52/15 fires at :07, :22, :37, :52.

*/15 * * * * /path/to/job.sh >> /var/log/myjob.log 2>&1

Common off-by-one

1-59/15 does not mean "every 15 minutes starting at :01" in the way people expect across the hour boundary — it fires at :01, :16, :31, :46. The step is applied within the range you give it, so choose the range's start deliberately.

Equivalent expressions

  • 0,15,30,45 * * * *explicit list — identical schedule
  • 7-52/15 * * * *same cadence phase-shifted to :07, :22, :37, :52

Run a SQL query on this schedule

If the job behind this schedule is a database query, you can skip the server and the crontab: SaturnSQL runs saved SQL queries on a cron expression — this exact syntax, with a real timezone field — and delivers the results to Google Sheets or Slack. Minimum interval 5 minutes.