All guides
Data

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.