Blog
Wild & Free Tools

Cron Expression for Weekdays Only (Monday Through Friday)

Last updated: April 2026 5 min read

Table of Contents

  1. The Weekday Cron Pattern
  2. Ready-to-Copy Weekday Schedules
  3. Day of Month vs Day of Week Interaction
  4. Weekday Cron in Different Platforms
  5. Frequently Asked Questions

Running a cron job only on business days — not weekends — is one of the most common scheduling needs. The 5th field in a cron expression controls the day of week, and setting it to 1-5 limits execution to Monday through Friday.

Build your weekday-only schedule in our free cron expression generator or copy from the ready-to-use examples below.

The Basic Weekday Cron Pattern

The day-of-week field (5th field) uses numbers 0-7, where 0 and 7 both mean Sunday. Monday is 1, Friday is 5. So 1-5 in the day-of-week field means Monday through Friday.

# Format: minute hour day-of-month month day-of-week
# Weekday pattern uses 1-5 in the last field

0 9 * * 1-5    # Every weekday at 9:00 AM
0 8 * * 1-5    # Every weekday at 8:00 AM
30 17 * * 1-5  # Every weekday at 5:30 PM (end of workday)

You can also use day names instead of numbers on most systems:

0 9 * * MON-FRI    # Same as 0 9 * * 1-5

Ready-to-Copy Weekday Cron Expressions

ScheduleCron ExpressionDescription
Weekdays 9 AM0 9 * * 1-5Business hours start
Weekdays 5 PM0 17 * * 1-5Business hours end
Weekday midnight0 0 * * 1-5Nightly weekday jobs
Weekday 6 AM0 6 * * 1-5Pre-work processing
Every 30 min, weekdays*/30 9-17 * * 1-5Every 30 min during business hours
Every hour, weekdays0 9-17 * * 1-5Hourly during work hours only
Weekdays 8 AM and 5 PM0 8,17 * * 1-5Twice daily on weekdays
Monday only0 9 * * 1Weekly Monday morning
Friday end of day0 17 * * 5Weekly Friday afternoon
Sell Custom Apparel — We Handle Printing & Free Shipping

Day of Month vs Day of Week: The "OR" Trap

This is the most common weekday scheduling mistake. If you set both the day-of-month field AND the day-of-week field, cron treats them as an OR condition, not AND. The job runs on any matching day-of-month OR any matching day-of-week.

For example, this does NOT mean "weekdays on the 1st of the month":

0 9 1 * 1-5   # WRONG — this means "on the 1st OR on weekdays"

It actually runs every weekday plus also on the 1st of every month (even if that's a Saturday). To schedule only on weekdays, leave the day-of-month field as *:

0 9 * * 1-5   # CORRECT — strictly weekdays only

Weekday Cron in Different Platforms

The 1-5 weekday syntax works across all standard platforms:

The Quartz/Spring Boot format requires ? in day-of-month when you specify day-of-week. AWS EventBridge adds a year field at the end. For all other standard Unix/Linux tools, 0 9 * * 1-5 is correct.

Try It Free — No Signup Required

Runs 100% in your browser. No account, no install, no limits.

Open Free Cron Generator

Frequently Asked Questions

How do I write a cron expression that runs only on weekdays?

Use 1-5 in the day-of-week field (the 5th field). Example: "0 9 * * 1-5" runs at 9 AM Monday through Friday. The number 1 = Monday and 5 = Friday in standard cron notation.

Can I write MON-FRI instead of 1-5 in a cron expression?

Yes, on most systems. Day name abbreviations like MON, TUE, WED, THU, FRI, SAT, SUN are valid in standard cron and are supported on Linux, macOS, Spring Boot, and most modern platforms. "0 9 * * MON-FRI" and "0 9 * * 1-5" are equivalent.

How do I run a cron job every hour during business hours on weekdays?

Use: "0 9-17 * * 1-5" — this fires at the top of every hour from 9 AM to 5 PM, Monday through Friday. Add the hour range in the hour field to limit execution to business hours.

Launch Your Own Clothing Brand — No Inventory, No Risk