Cron every 45 minutes

*/45 * * * *

A common mistake: this runs at :00 and :45 of each hour, not every 45 minutes.

What each field means

FieldPositionMeaning
*/45minuteevery 45th minute (0, 45)
*hourevery hour
*day of monthevery day of month
*monthevery month
*day of weekevery day of week

Example run times

Starting from Wednesday 07 Jan 2026, 10:17, the next runs are:

  • Wed 07 Jan 2026, 10:45
  • Wed 07 Jan 2026, 11:00
  • Wed 07 Jan 2026, 11:45
  • Wed 07 Jan 2026, 12:00
  • Wed 07 Jan 2026, 12:45
  • Wed 07 Jan 2026, 13:00

How often it runs

  • 48 runs on each day it is active.
  • Active on 365 of the 365 days in 2026, for 17,520 runs that year.
  • The gap between runs varies from 15 minutes to 45 minutes.

Watch out

  • */45 in the minute field does not mean “every 45 minutes” forever: it restarts at the top of each hour. It matches minutes 0, 45, so the gap between the last run of one hour and the first run of the next is only 15 minutes.

Use it on your platform

Linux crontab

*/45 * * * * /path/to/command

Edit with crontab -e. Cron uses the server's local time zone.

GitHub Actions

on:
  schedule:
    - cron: '*/45 * * * *'

Schedules are evaluated in UTC, and runs can start late when GitHub is busy.

Kubernetes CronJob

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "*/45 * * * *"
  timeZone: "Etc/UTC"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: my-job
              image: busybox
              command: ["sh", "-c", "date"]
          restartPolicy: OnFailure

Without timeZone, the schedule follows the time zone of the kube-controller-manager.

AWS EventBridge

cron(0/45 * * * ? *)

AWS uses six fields (the last is the year), needs ? in either day-of-month or day-of-week, and counts weekdays from 1 = Sunday, so names like MON are safer than numbers. EventBridge rules run in UTC; EventBridge Scheduler lets you choose a time zone.

Spring @Scheduled

@Scheduled(cron = "0 */45 * * * *")

Spring adds a seconds field at the start, so prepend 0 to run at second zero.

Quartz

0 0/45 * * * ?

Quartz also starts with seconds and, like AWS, requires ? in one of the day fields.

Related schedules