Why */45 in cron does not mean every 45 minutes
09:00, 09:45, 10:00. The hour boundary explains the unexpected extra run.
*/45 * * * * runs at minute 0 and minute 45 of each hour. The gaps alternate between 45 minutes and 15 minutes. It does not wait 45 minutes after the previous run.
Cron matches fields on a clock. The step in the minute field starts again when the hour changes. That distinction matters if you are scheduling a report, a feed refresh or a cleanup job.
Check the hour boundary
Open the cron builder, choose Paste expression, and enter */45 * * * *. Set Schedule timezone to UTC. Under Preview after, choose 6 November 2026 at 08:59. On a phone, switch to Upcoming runs to see the list.
The first five matches are:
| Run in UTC | Gap from the preceding match |
|---|---|
| 09:00 | — |
| 09:45 | 45 minutes |
| 10:00 | 15 minutes |
| 10:45 | 45 minutes |
| 11:00 | 15 minutes |
Show 5 more extends the preview. The date is fixed here so you can reproduce our recorded runs; you can use any ordinary UTC date to see the same hour-boundary behavior. The preview lists matches strictly after the chosen time.
A step stays inside its field
The minute field spans 0 through 59. Stepping by 45 selects 0 and 45, then the next hour starts at 0 again. By comparison, */15 * * * * selects 0, 15, 30 and 45, producing equal 15-minute gaps in UTC.
The crontab manual describes this field-by-field behavior. The builder supports five fields: minute, hour, day of month, month and weekday. A six-field expression with seconds belongs to a different dialect and is rejected here.
A friendly description above the preview is useful, but check the actual timestamps before using a stepped expression. In particular, look at a pair of runs on opposite sides of an hour boundary.
If you need a 45-minute clock schedule
For a fixed UTC schedule at 00:00, 00:45, 01:30, 02:15, 03:00 and so on, four expressions can cover the three-hour repeating pattern:
0 0-23/3 * * *
45 0-23/3 * * *
30 1-23/3 * * *
15 2-23/3 * * *
Preview each expression separately. The tool takes one expression at a time and does not install jobs. In your scheduler, configure all four entries to invoke the same task and use UTC for each. These are schedule expressions only: a Unix crontab also needs a command after each one, while a hosted service may use separate trigger settings.
Download the four expressions. Our combined preview gives 09:00, 09:45, 10:30, 11:15 and 12:00, with 45 minutes between matches. This is a clock schedule, not a delay measured from a job's completion.
Match the schedule to the job
If the requirement is “wait 45 minutes after this task finishes,” use a scheduler or queue with that interval behavior. Neither a cron step nor the four-entry clock schedule waits for a previous run to finish. Decide how to prevent overlapping jobs if one can take longer than the interval.
The timezone setting in this preview does not travel with a copied expression. Set it again in the destination scheduler. UTC avoids daylight-saving clock changes for this example; a local-time schedule needs separate checks around those changes.
The results record was generated with the tool's actual parser on 6 November 2026. It checks the alternating gaps and 65 combined matches for the four-entry schedule. It is a calculation check, not evidence that a background job has been installed or run.