Cron weekdays at 9 AM

0 9 * * 1-5

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.

Try it in the Cron Builder

At 09:00, Monday through Friday

Read as a crontab line, where Sunday is 0 or 7.

minutehourday of monthmonthday of week
09**1-5

Next runs

Working out the next runs from your clock…

Runs in your browser. Nothing you enter is sent anywhere.