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 breakdown for 0 9 1-7 * 1
FieldValueMeaning
Minute0Configured as 0
Hour9Configured as 9
Day of month1-7Configured as 1-7
Month*Every value
Day of week1Configured 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 compatibility for 0 9 1-7 * 1
PlatformStatusExpressionWhat to know
Unix crontabReady0 9 1-7 * 1Use directly in a normal five-field user crontab.
Kubernetes CronJobReady0 9 1-7 * 1Use as spec.schedule; set spec.timeZone when local wall-clock behavior matters.
GitHub ActionsReady0 9 1-7 * 1Use under on.schedule; UTC is the default and an IANA timezone may be specified.
Vercel Cron JobsPlan / behavior limit0 9 1-7 * 1The expression is valid, but Vercel always uses UTC and Hobby schedules run at most once per day.
AWS EventBridge SchedulerConvertcron(0 9 1-7 * 1 *)Convert to AWS minute-first cron(...), add the required year, and use ? in one day field.
Spring @ScheduledConvert0 0 9 1-7 * 1Use Spring’s six fields by prepending seconds and set zone explicitly when needed.
systemd timerConvert0 9 1-7 * 1Use 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.