Cron expression
Every hour during business hours
0 9-17 * * 1-5
Runs on the hour from 09:00 to 17:00, Monday to Friday: nine runs a day.
Runs per month
≈ 193
Next run (UTC)
Thu 15:00
On CronEngine
Runs on the free plan
What each part means
| Minute | 0 | at minute 0 |
| Hour | 9-17 | from hour 9 to 17 |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | 1-5 | from Monday to Friday |
Next runs
- 1 Thursday 22 October 2026 15:00 UTC
- 2 Thursday 22 October 2026 16:00 UTC
- 3 Thursday 22 October 2026 17:00 UTC
- 4 Friday 23 October 2026 09:00 UTC
- 5 Friday 23 October 2026 10:00 UTC
See these in your own timezone, or change the schedule →
Good to know
- Ranges include both ends, so 9-17 runs at 17:00 too. For a last run at 16:00, use 9-16.
- Business hours are in the scheduler's timezone. A server in UTC would run these at different local times in summer and winter.
Typical uses: Checking a support inbox, syncing during the working day, hourly sales updates.
Copy and paste
0 9-17 * * 1-5 /path/to/script.sh
on:
schedule:
- cron: '0 9-17 * * 1-5'
GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy. How to start it on time.
Schedule::command('your:command')->cron('0 9-17 * * 1-5');
Variations
| 0 9-16 * * 1-5 | Every hour from 09:00 to 16:00 on weekdays |
| */5 9-17 * * 1-5 | Every 5 minutes during business hours → |
Questions
What is the cron expression for every hour during business hours?
0 9-17 * * 1-5. Runs on the hour from 09:00 to 17:00, Monday to Friday: nine runs a day.
Can GitHub Actions run every hour during business hours?
Yes, with cron: '0 9-17 * * 1-5'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.