Curated cron expression

Every Monday at 9 AM Cron Expression: 0 9 * * 1

Understand 0 9 * * 1 for Monday at 9 AM, with field-by-field explanation, weekly next runs, timezone and DST notes, use cases, and scheduler conversions.

Meaning at a glance

0 9 * * 1

Run every Monday at 09:00

Once per week at Monday 09:00 in the scheduler timezone.

Next-run example: After Monday at 09:01, the next nominal run is the following Monday at 09:00.

How 0 9 * * 1 works

The final value 1 selects Monday in the Unix day-of-week field. Combined with minute 0 and hour 9, the expression fires once each week on Monday morning.

Weekly workflows need an explicit recovery path. If Monday’s run fails, waiting for the next cron event means a seven-day delay unless a retry or manual backfill exists.

Field breakdown for 0 9 * * 1
FieldValueMeaning
Minute0At minute zero
Hour9At 09:00
Day of month*Any date that is Monday
Month*Every month
Day of week1Monday

Good use cases

  • Weekly planning digest
  • Capacity report
  • Monday data refresh
  • Weekly dependency review

Timezone and daylight-saving behavior

A team-facing Monday schedule should normally use the team’s named timezone, not the server default.

09:00 is usually outside a DST transition window, but its corresponding UTC hour changes when the selected region changes offset.

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
PlatformStatusExpressionWhat to know
Unix crontabReady0 9 * * 1Use directly in a normal five-field user crontab.
Kubernetes CronJobReady0 9 * * 1Use as spec.schedule; set spec.timeZone when local wall-clock behavior matters.
GitHub ActionsReady0 9 * * 1Use under on.schedule; UTC is the default and an IANA timezone may be specified.
Vercel Cron JobsPlan / behavior limit0 9 * * 1Valid weekly expression at 09:00 UTC; verify current plan scheduling limits.
AWS EventBridge SchedulerConvertcron(0 9 ? * MON *)Convert to AWS minute-first cron(...), add the required year, and use ? in one day field.
Spring @ScheduledConvert0 0 9 * * MONUse Spring’s six fields by prepending seconds and set zone explicitly when needed.
systemd timerConvertMon *-*-* 09:00:00Use OnCalendar syntax and validate it with systemd-analyze calendar on the target host.

Edge cases to check before deployment

  • Unix uses Monday=1, while other schedulers may number weekdays differently.
  • Public holidays do not suppress the run.
  • Add a backfill command because the next automatic opportunity is one week later.

Frequently asked questions

What does the cron expression 0 9 * * 1 mean?

0 9 * * 1 means “run every monday at 09:00.” Once per week at Monday 09:00 in the scheduler timezone.

What are the next run times for 0 9 * * 1?

After Monday at 09:01, the next nominal run is the following Monday at 09:00. Exact timestamps depend on the scheduler timezone and the current time.

What timezone does 0 9 * * 1 use?

A team-facing Monday schedule should normally use the team’s named timezone, not the server default.

Can I use 0 9 * * 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.