0 9-17 * * 1-5
Cron reads this as: minute 0, past hour 9 through 17, on day-of-week Monday through Friday.
Next 5 runs
Computed in your browser's local time zone. Cron itself evaluates against the server's zone, which on most cloud hosts is UTC — see time zones & DST if that distinction matters here.
- Calculating…
When to use this schedule
Hourly from 09:00 to 17:00, Monday to Friday — nine runs a day, 45 a week. The usual shape for anything that only matters while people are working: queue processing for a support tool, syncing a CRM, refreshing a dashboard nobody looks at overnight.
What to watch out for
The hour range is inclusive at both ends and covers the whole of the final hour. 9-17 therefore includes 17:00, and if you change the minute field to */15 the last run becomes 17:45, not 17:00. If you want coverage to stop at 17:00 exactly, the minute field has to enforce it. Note also that this schedule knows nothing about public holidays — a job that must skip them needs a calendar check in the script.
The crontab line
0 9-17 * * 1-5 /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1
Redirect the output somewhere you will actually read it — by default cron mails it, and on a host with no mail transport that means it is discarded. See the crontab guide for the surrounding syntax.
Related schedules
| Expression | Schedule |
|---|---|
*/15 9-17 * * 1-5 | Every 15 min in business hours |
0 9-17 * * MON-FRI | Same schedule, using names |
0 8-18 * * 1-5 | A wider window |
Build your own
Need something this page does not cover? Compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library collects sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.