Skip to content
cronhelp.me
Preset

Cron expression for weekdays at 9 AM

0 9 * * 1-5
Cron expression5-field
At 09:00 AM, Monday through Friday
Lint
OKNo issues found — this expression is well-formed.
Next runs
#
1
2
3
4
5
6
7
Copy as

What it does

The expression 0 9 * * 1-5 runs a job at 09:00 on weekdays — Monday through Friday — and skips Saturday and Sunday. Minute 0, hour 9, and the day-of-week range 1-5 (Monday is 1, Friday is 5) do the work; day-of-month and month stay *.

This is the standard "working days" schedule: business-hours reports, weekday reminders, workday data syncs. Restricting to Monday–Friday avoids sending or processing things when nobody is around to act on them.

One subtlety worth knowing: because the day-of-month field is *, only the day-of-week restriction applies, and cron behaves exactly as expected. The famous day-of-month / day-of-week trap only appears when both of those fields are restricted at once — then cron runs on the union, not the intersection. Here you are safe. To shift the time, change the hour; for a 6 PM finish reminder, use 0 18 * * 1-5.

Related presets

FAQ

What do the numbers in 1-5 mean?
Days of the week: 1 is Monday and 5 is Friday, so 1-5 is Monday through Friday. Sunday is 0 (and also 7 on many systems).
Does this run on public holidays?
Yes — cron has no holiday calendar. It runs every Monday–Friday. Gate holidays inside your script if you need to skip them.
Why not 0 9 1-5 * * for weekdays?
1-5 in the day-of-month field means the 1st through 5th of the month, not Monday–Friday. The weekday is the fifth field.