Curated cron expression
First Monday of Month at 9 AM (approximation): 0 9 1-7 * 1
0 9 1-7 * 1 — common crontab pattern for first Monday (verify with next-run preview).
Meaning at a glance
0 9 1-7 * 1
Run at 09:00 on days 1–7 that are Monday
At most one Monday between days 1–7 each month.
Next-run example: Preview with CronWizard — depends on calendar layout.
How 0 9 1-7 * 1 works
Constraining day-of-month 1-7 AND Monday selects Mondays in the first week.
This approximates 'first Monday' but verify edge cases in your scheduler.
Some platforms offer L or # nth-weekday syntax instead.
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | Configured as 0 |
| Hour | 9 | Configured as 9 |
| Day of month | 1-7 | Configured as 1-7 |
| Month | * | Every value |
| Day of week | 1 | Configured as 1 |
Good use cases
- First Monday reports
- Monthly standups
- Ops reviews
Timezone and daylight-saving behavior
Calendar logic is timezone-dependent near month boundaries.
Preview March/November transitions.
The expression does not contain a timezone. The scheduler supplies that context. Use the next-run preview above in the same IANA timezone as production, then confirm the target platform's own timezone rules.
Platform compatibility and converted expressions
The source expression is five-field Unix cron. Use the exact equivalent below rather than adding or removing fields by sight.
| Platform | Status | Expression | What to know |
|---|---|---|---|
| Unix crontab | Ready | 0 9 1-7 * 1 | Use directly in a normal five-field user crontab. |
| Kubernetes CronJob | Ready | 0 9 1-7 * 1 | Use as spec.schedule; set spec.timeZone when local wall-clock behavior matters. |
| GitHub Actions | Ready | 0 9 1-7 * 1 | Use under on.schedule; UTC is the default and an IANA timezone may be specified. |
| Vercel Cron Jobs | Plan / behavior limit | 0 9 1-7 * 1 | The expression is valid, but Vercel always uses UTC and Hobby schedules run at most once per day. |
| AWS EventBridge Scheduler | Convert | cron(0 9 1-7 * 1 *) | Convert to AWS minute-first cron(...), add the required year, and use ? in one day field. |
| Spring @Scheduled | Convert | 0 0 9 1-7 * 1 | Use Spring’s six fields by prepending seconds and set zone explicitly when needed. |
| systemd timer | Convert | 0 9 1-7 * 1 | Use OnCalendar syntax and validate it with systemd-analyze calendar on the target host. |
Edge cases to check before deployment
- Not all schedulers combine DOM/DOW the same way.
- Verify with next-run list.
Frequently asked questions
What does the cron expression 0 9 1-7 * 1 mean?
0 9 1-7 * 1 means “run at 09:00 on days 1–7 that are monday.” At most one Monday between days 1–7 each month.
What are the next run times for 0 9 1-7 * 1?
Preview with CronWizard — depends on calendar layout. Exact timestamps depend on the scheduler timezone and the current time.
What timezone does 0 9 1-7 * 1 use?
Calendar logic is timezone-dependent near month boundaries.
Can I use 0 9 1-7 * 1 on every scheduling platform?
No. It is a five-field Unix expression. Some platforms accept it directly, while AWS EventBridge Scheduler, Spring, and systemd require the converted form shown in the compatibility table.