# Run a Cron Job Every Weekday

> The cron expression for weekdays at 9am is 0 9 * * 1-5. Field meanings, next runs, and how the day-of-week range works.

```
0 9 * * 1-5
```

In plain English: At 09:00, on Monday through Friday.

The day-of-week field runs 0–6 with Sunday as 0, so 1-5 is Monday through Friday. Combined with minute 0 and hour 9, this fires at 09:00 on workdays and stays silent on weekends — the standard schedule for standup reminders, business reports, and market-hours jobs.

## Field by field

| Field | Value | Meaning |
|---|---|---|
| Minute | `0` | 0 |
| Hour | `9` | 9 |
| Day of month | `*` | every day |
| Month | `*` | every month |
| Day of week | `1-5` | Monday through Friday |

## Variations

- `0 9 * * MON-FRI` — same schedule using day names
- `*/30 9-17 * * 1-5` — every 30 minutes during weekday business hours
- `0 9 * * 6,0` — the inverse — weekends only

## FAQ

### Is Sunday 0 or 7 in cron?

Both — standard cron accepts either. 0-6 runs Sunday to Saturday and 1-7 runs Monday to Sunday. The names SUN–SAT also work in most implementations and avoid the ambiguity entirely.

### Does 1-5 skip public holidays?

No — cron only knows the calendar, not holidays. Holiday awareness has to live in the job itself (check a holiday API or table, then exit early).

## Related schedules

- [0 9 * * * — Run a Cron Job Every Day at 9 AM](https://www.devkult.com/cron/every-day-at-9am.md)
- [0 9 * * 1 — Run a Cron Job Every Monday](https://www.devkult.com/cron/every-monday.md)
- [0 0 * * 0 — Run a Cron Job Every Sunday](https://www.devkult.com/cron/every-sunday.md)

Open the interactive page: https://www.devkult.com/cron/every-weekday