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>&1Common 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 schedule7-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.