0 9-17 * * 1-5
Open in the generator
Ranges are inclusive: 9-17 selects 09:00 through 17:00, nine runs a day. If 17:00 should be the last minute rather than the last run, use 9-16.
Replace the minute field with a step for more frequent checks inside the same window: */15 9-17 * * 1-5 runs every quarter hour and */5 9-17 * * 1-5 every five minutes, in both cases until 17:55.
Field by field
| Value | Field | Meaning |
|---|---|---|
| 0 | Minute 0–59 | at minute 0 |
| 9-17 | Hour 0–23 | 09:00 to 17:00 |
| * | Day of month 1–31 | every day of the month |
| * | Month 1–12 or JAN–DEC | every month |
| 1-5 | Day of week 0–7 or SUN–SAT (0 and 7 are Sunday) | Monday to Friday |
Next run times
Computed in your browser from the current time, so you can check the schedule against a clock you trust.
Your timezone (local)
- Needs JavaScript.
UTC (GitHub Actions, Kubernetes default)
Variations
*/15 9-17 * * 1-5every 15 minutes during business hours · try it*/5 9-17 * * 1-5every 5 minutes during business hours · try it0 9 * * 1-5once a day at 09:00 on weekdays · see page
Where this expression works
- Linux and macOS crontab: as written; times follow the system timezone.
- Kubernetes CronJob: the same five fields; UTC unless
spec.timeZoneis set. - GitHub Actions: the same syntax in UTC, minimum interval five minutes, no
@shortcuts. - AWS EventBridge: a different six-field syntax; do not paste this expression unchanged.
Full platform comparison · Cron tutorial
FAQ
Does 9-17 include 17:00?
Yes. Cron ranges include both ends, so the last run of the day is at 17:00.