# Run a Cron Job Every Hour During Business Hours

> The cron expression for every hour from 9 to 5 on weekdays is 0 9-17 * * 1-5. Field meanings, next runs, and variations for half-hours and other office hours.

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

In plain English: At minute 0, past hour 9 through 17, on Monday through Friday.

0 9-17 * * 1-5 runs on the hour from 09:00 through 17:00, Monday to Friday — nine runs a day, none at night or at weekends. Ranges in cron are inclusive: 9-17 includes 17:00, so the last run is at 5 p.m., not just before it.

## Field by field

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

## Variations

- `0 9-16 * * 1-5` — last run at 16:00, so nothing fires at 5 p.m.
- `*/30 9-17 * * 1-5` — every 30 minutes in the same window
- `0 8-18 * * 1-6` — longer hours, Monday to Saturday

## FAQ

### Does 9-17 include 5 p.m.?

Yes. Cron ranges are inclusive, so 9-17 matches 17:00 too. Use 9-16 if the job must not run at 5 p.m.

### How do I use business hours in another time zone?

Cron uses the server's time zone. Convert the hours to the server's zone (and watch for daylight-saving changes), or use a cron that supports a CRON_TZ=Europe/London line above the job.

## Related schedules

- [0 * * * * — Run a Cron Job Every Hour](https://www.devkult.com/cron/every-hour.md)
- [0 9 * * 1-5 — Run a Cron Job Every Weekday](https://www.devkult.com/cron/every-weekday.md)
- [*/30 * * * * — Run a Cron Job Every 30 Minutes](https://www.devkult.com/cron/every-30-minutes.md)

Open the interactive page: https://www.devkult.com/cron/every-hour-during-business-hours