0 9 1-7 * *
Cron reads this as: at 09:00, on day-of-month 1 through 7.
Next 5 runs
Cron alone cannot express this schedule, so the expression deliberately matches several days and a shell test picks the right one. The times below are the days cron will wake up; the guard shown further down lets exactly one of them through.
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
Monthly meetings, monthly reports, anything anchored to a weekday rather than a date. Like the last day of the month, this needs a guard in standard cron.
What to watch out for
The obvious expression — 0 9 1-7 * 1 — does not work. When both day-of-month and day-of-week are restricted, standard cron runs when either matches, so that fires on days 1 through 7 and on every Monday: roughly eleven times a month. The working approach restricts only the day of month to the first week and tests for Monday in the shell. In Quartz this is expressible directly as 0 0 9 ? * MON#1.
The crontab line
This schedule needs a shell guard, because cron alone cannot express it. The expression narrows cron to the candidate days and the test lets exactly one of them through:
0 9 1-7 * * [ "$(date +\%u)" = "1" ] /usr/local/bin/your-job.sh
The \% escaping is a crontab requirement — an unescaped % is turned into a
newline and everything after it is fed to the command on standard input. See the
crontab guide for the full rule.
Related schedules
| Expression | Schedule |
|---|---|
0 9 1-7 * 1 | The broken version — 11 runs/month |
0 0 9 ? * MON#1 | The Quartz equivalent |
0 9 * * 1 | Every Monday instead |
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.