What each field means
| Field | Position | Meaning |
|---|---|---|
*/15 | minute | every 15th minute (0, 15, 30, 45) |
9-17 | hour | 09:00–09:59 through 17:00–17:59 |
* | day of month | every day of month |
* | month | every month |
1-5 | day of week | Monday through Friday |
Example run times
Starting from Wednesday 07 Jan 2026, 10:17, the next runs are:
- Wed 07 Jan 2026, 10:30
- Wed 07 Jan 2026, 10:45
- Wed 07 Jan 2026, 11:00
- Wed 07 Jan 2026, 11:15
- Wed 07 Jan 2026, 11:30
- Wed 07 Jan 2026, 11:45
How often it runs
- 36 runs on each day it is active.
- Active on 261 of the 365 days in 2026, for 9,396 runs that year.
- The gap between runs varies from 15 minutes to 63 h 15 min.
Use it on your platform
Linux crontab
*/15 9-17 * * 1-5 /path/to/command
Edit with crontab -e. Cron uses the server's local time zone.
GitHub Actions
on:
schedule:
- cron: '*/15 9-17 * * 1-5'
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: "*/15 9-17 * * 1-5"
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/15 9-17 ? * MON-FRI *)
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 */15 9-17 * * 1-5")
Spring adds a seconds field at the start, so prepend 0 to run at second zero.
Quartz
0 0/15 9-17 ? * MON-FRI
Quartz also starts with seconds and, like AWS, requires ? in one of the day fields.