Cron expression
Every weekday at 9 AM
0 9 * * 1-5
Runs at 09:00 from Monday to Friday, and not at the weekend.
Runs per month
≈ 21
Next run (UTC)
Fri 09:00
On CronEngine
Runs on the free plan
What each part means
| Minute | 0 | at minute 0 |
| Hour | 9 | at hour 9 |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | 1-5 | from Monday to Friday |
Next runs
- 1 Friday 23 October 2026 09:00 UTC
- 2 Monday 26 October 2026 09:00 UTC
- 3 Tuesday 27 October 2026 09:00 UTC
- 4 Wednesday 28 October 2026 09:00 UTC
- 5 Thursday 29 October 2026 09:00 UTC
See these in your own timezone, or change the schedule →
Good to know
- In the weekday field 1 is Monday and 5 is Friday. Sunday is 0, and some cron tools also accept 7 for Sunday.
- Many tools also accept MON-FRI, but numbers work everywhere.
Typical uses: Daily stand-up reminders, business reports, sending invoices on working days.
Copy and paste
0 9 * * 1-5 /path/to/script.sh
on:
schedule:
- cron: '0 9 * * 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')->weekdays()->at('09:00');
Variations
| 30 8 * * 1-5 | Weekdays at 08:30 |
| 0 10 * * 0,6 | Saturday and Sunday at 10:00 → |
| 0 9 * * 1 | Mondays at 09:00 → |
Questions
What is the cron expression for every weekday at 9 AM?
0 9 * * 1-5. Runs at 09:00 from Monday to Friday, and not at the weekend.
Can GitHub Actions run every weekday at 9 AM?
Yes, with cron: '0 9 * * 1-5'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.