buildcron

Cron Expression for Weekdays at 9am

The cron expression for weekdays at 9am is 0 9 * * 1-5: minute 0, hour 9, Monday through Friday. It runs once each working morning, five times a week, and skips Saturday and Sunday.

CRON → ENGLISH
0 minute9 hour* day of month* month1-5 day of week
VALID EXPRESSION

At 9:00am on Monday, Tuesday, Wednesday, Thursday and Friday.

0 9 * * 1-5

Standard 5-field crontab syntax. Day of month and day of week are OR'd when both are set.

NEXT 5 RUN TIMES · local time

What it does

Two fields do the work. 0 9 fixes the time at 09:00, and 1-5 in the day of week field — Monday is 1, Friday is 5 — limits it to working days. The day of month field is left as *, so the weekday range alone decides which days qualify.

This is the classic start-of-business schedule: posting the day's stand-up prompt to a team chat, emailing a sales pipeline summary to managers, opening a support queue's daily triage, or kicking off end-to-end tests against staging just as developers start work, so any failures get fixed the same morning. Because it's timed for people rather than machines, the timezone matters more than it does for most jobs.

A team spread across offices rarely shares one 9am. If the server runs on UTC and your team is in Sydney, 9:00 there is 22:00 or 23:00 UTC on the previous day, depending on daylight saving — so the weekday range shifts too, to 0 22 * * 0-4 or 0 23 * * 0-4. Setting the scheduler's timezone, where it supports one, handles both shifts at once.

How 0 9 * * 1-5 works, field by field

FIELDVALUEMEANING
Minute0minute 0
Hour9hour 9 (9am)
Day of month*every day of the month
Month*every month
Day of week1-5Monday, Tuesday, Wednesday, Thursday and Friday

Put together, cron reads 0 9 * * 1-5 as: “At 9:00am on Monday, Tuesday, Wednesday, Thursday and Friday.

To see further ahead, paste the expression into the cron calculator, which lists the next ten run times and counts how many times the schedule runs in a year.

Frequently asked questions

How do I run a job at 9am on weekdays in another timezone?

Either set the scheduler's timezone — CRON_TZ=Europe/London in cronie, or timeZone on a Kubernetes CronJob — or convert 09:00 to the server's timezone yourself, shifting the day range if the conversion crosses midnight.

Can I run it at 9am on weekdays and 10am at weekends?

Not in one line, because the time fields apply to every matching day. Use two lines: 0 9 * * 1-5 for weekdays and 0 10 * * 6,0 for the weekend.

What's the difference between 0 9 * * 1-5 and 0 9 * * *?

0 9 * * * runs at 9am every day, weekends included. Adding 1-5 in the day of week field limits it to Monday through Friday, so it runs five times a week instead of seven.