Cron Expression for During Business Hours

During business hours — 45 times a week
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.

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

Variations on during business hours
ExpressionSchedule
*/15 9-17 * * 1-5Every 15 min in business hours
0 9-17 * * MON-FRISame schedule, using names
0 8-18 * * 1-5A 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.