Cron expression
Every Monday at 9 AM
0 9 * * 1
Runs once a week, on Monday at 09:00.
Runs per month
≈ 4
Next run (UTC)
Mon 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 | on Monday |
Next runs
- 1 Monday 26 October 2026 09:00 UTC
- 2 Monday 2 November 2026 09:00 UTC
- 3 Monday 9 November 2026 09:00 UTC
- 4 Monday 16 November 2026 09:00 UTC
- 5 Monday 23 November 2026 09:00 UTC
See these in your own timezone, or change the schedule →
Good to know
- Monday is 1. For Friday afternoon, the weekday field becomes 5: 0 16 * * 5.
- Leave the day of the month as *. Filling in both a day and a weekday changes the meaning, and not every tool reads it the same way.
Typical uses: Weekly reports, planning reminders, weekly invoices.
Copy and paste
0 9 * * 1 /path/to/script.sh
on:
schedule:
- cron: '0 9 * * 1'
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')->weeklyOn(1, '9:00');
Variations
| 0 16 * * 5 | Fridays at 16:00 |
| 0 0 * * 0 | Sundays at midnight → |
Questions
What is the cron expression for every Monday at 9 AM?
0 9 * * 1. Runs once a week, on Monday at 09:00.
Can GitHub Actions run every Monday at 9 AM?
Yes, with cron: '0 9 * * 1'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.