What each field means
| Field | Position | Meaning |
|---|---|---|
*/45 | minute | every 45th minute (0, 45) |
* | hour | every hour |
* | day of month | every day of month |
* | month | every month |
* | day of week | every 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
*/45in 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.