Cron pattern
Cron Expression for Every Monday
0 9 * * 1 runs a job at 9:00 AM every Monday. The last field is the key — here is how the day-of-week syntax works and when the next runs fire.
0 9 * * 1 This schedule fires on the pattern shown above; see the field-by-field breakdown below.
Next 5 run times
Computed in your browser, in your local timezone.
- your local time
- your local time
- your local time
- your local time
- your local time
How 0 9 * * 1 works
In the five-field cron format — minute, hour, day of month, month, day of week —
the schedule 0 9 * * 1 is:
0— at minute zero.9— at hour 9, i.e. 9:00 AM.- First
*— every day of the month. - Second
*— every month. 1— only on Monday (weekdays are numbered 0–6 where 0 = Sunday and 1 = Monday).
The run happens at 9 AM on Monday, and then not again until the following Monday — a true weekly
schedule. Cron numbers the week with Sunday at position 0, so Monday is 1, Tuesday
2, and so on through Saturday 6. The numeric aliases
MON, TUE, WED, THU, FRI,
SAT, SUN also work in most implementations, so 0 9 * * MON
is exactly equivalent.
Typical Monday jobs
Weekly schedules are natural for reporting and housekeeping that only makes sense once a week: weekly digests, sprint report generation, code-signing certificate renewals, archive compaction, and “monday morning” syncs that pull data from partner systems. Running at 9 AM Monday (rather than midnight Sunday) means the job lands after the weekend has fully settled and within core hours when engineers are awake to notice failures.
Day-of-month vs day-of-week gotcha
When both the day-of-month and day-of-week fields are restricted, most cron daemons run the
job when either matches (an OR), which surprises many people. In
0 9 * * 1 the day-of-month field is * (unrestricted), so that ambiguity
never arises — Mondays only, nothing else. For the same reason the schedule ignores 31-day months and
leap years completely; every week has exactly one Monday.
To broaden the pattern, the same day-of-week field powers
the weekday range 1-5 (Mon–Fri) and
Sunday (0). To make it monthly instead of weekly, see the
first-day-of-month schedule. Every field is explained in the
complete cron guide.
Understanding the syntax of 0 9 * * 1
In plain English, this schedule at 9:00 am, on monday. Here is each of the five fields and what it controls:
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | at minute 0 |
| Hour | 9 | at 9:00 AM |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | 1 | on Monday |
The expression has five space-separated fields: minute hour day-of-month month day-of-week. Any field set to * means “every”.
Explore more cron patterns
Fine-tune your schedule with a related pattern, or start from scratch in the builder.