0 9 * * 1-5 runs a job at 09:00, Monday through Friday. The last field is the day of week, where 0 is Sunday, 1 is Monday and 6 is Saturday, so 1-5 is the working week. Most crons also accept names: 0 9 * * MON-FRI.
When it fires
Checked at 09:58 UTC on Wednesday, October 14, the 09:00 run that day has passed, so the next five are:
Thu Oct 15 Fri Oct 16 Mon Oct 19 Tue Oct 20 Wed Oct 21
Variations
30 8 * * 1-5 08:30 on weekdays
0 9,14 * * 1-5 09:00 and 14:00 on weekdays
0 9 * * 6,0 09:00 on weekends (7 also means Sunday in many crons)
*/15 9-17 * * 1-5 every 15 minutes during office hours
Which nine o’clock?
The server’s, unless you say otherwise. A team spread over time zones usually wants the job pinned to one zone: CRON_TZ= in a crontab, spec.timeZone in Kubernetes, or a timezone setting in the scheduler.
The same schedule elsewhere
- GitHub Actions:
cron: '0 9 * * 1-5'runs at 09:00 UTC; convert from your zone, and remember that daylight saving moves it by an hour. - AWS EventBridge:
cron(0 9 ? * MON-FRI *). AWS numbers days 1–7 from Sunday, so names are safer than numbers. - systemd timer:
OnCalendar=Mon..Fri 09:00. - Spring
@Scheduled:0 0 9 * * MON-FRI.