ClockOrbit

Weekly

0 9 * * 1

Run once a week, Monday at 09:00.

This preview is live: the table below shows the actual next run times for 0 9 * * 1 in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.

Next runs
valid
Upcoming runs
Sun, Nov 8 2026
09:00 UTC
in 44 hours
Mon, Nov 9 2026
09:00 UTC
in 3 days
Sun, Nov 15 2026
09:00 UTC
in 9 days
Mon, Nov 16 2026
09:00 UTC
in 10 days
Sun, Nov 22 2026
09:00 UTC
in 16 days
Mon, Nov 23 2026
09:00 UTC
in 17 days
Sun, Nov 29 2026
09:00 UTC
in 23 days
Mon, Nov 30 2026
09:00 UTC
in 24 days
Sun, Dec 6 2026
09:00 UTC
in 30 days
Mon, Dec 7 2026
09:00 UTC
in 31 days
Sun, Dec 13 2026
09:00 UTC
in 37 days
Mon, Dec 14 2026
09:00 UTC
in 38 days
Sun, Dec 20 2026
09:00 UTC
in 44 days
Mon, Dec 21 2026
09:00 UTC
in 45 days
Sun, Dec 27 2026
09:00 UTC
in 51 days
Mon, Dec 28 2026
09:00 UTC
in 52 days
Sun, Jan 3 2027
09:00 UTC
in 58 days
Mon, Jan 4 2027
09:00 UTC
in 59 days
Sun, Jan 10 2027
09:00 UTC
in 65 days
Mon, Jan 11 2027
09:00 UTC
in 66 days
Sun, Jan 17 2027
09:00 UTC
in 72 days
Mon, Jan 18 2027
09:00 UTC
in 73 days
Sun, Jan 24 2027
09:00 UTC
in 79 days
Mon, Jan 25 2027
09:00 UTC
in 80 days
Sun, Jan 31 2027
09:00 UTC
in 86 days

What 0 9 * * 1 means

0 9 * * 1 fires Monday at 9am, the start of the working week and the most popular slot for weekly kickoff automation. Monday is day-of-week 1 in every dialect (the numbering only disagrees about Sunday), so this one ports cleanly.

Start-of-week jobs set the tone for the days ahead: the weekly plan, the sprint kickoff summary, the "here's what's due this week" digest. Because people act on the output immediately, punctuality matters.

Field-by-field breakdown

Unix cron has five fields. Here is what each one is doing in this expression:

FieldValueMeaning
Minute0minute = 0
Hour9hour = 9
Day of month*every day-of-month
Month*every month
Day of week1day-of-week = 1

Every Monday at 9am in every scheduler

The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target, the field count and day-of-week numbering differ between them.

SchedulerExpressionCopy
Unix / crontab0 9 * * 1
GitHub Actions0 9 * * 1
Kubernetes CronJob0 9 * * 1
Vercel Cron0 9 * * 1
Quartz0 0 9 ? * 1 *
Spring0 0 9 ? * 1
AWS EventBridge0 9 ? * 1 *

When you would use 0 9 * * 1

The gotcha worth knowing

A bank holiday Monday still triggers this job. Cron has no holiday awareness, so guard human-facing Monday sends with a holiday check or they will fire on long weekends.

People also search for

cron every monday0 9 * * 1crontab monday 9amcron weekly monday morning

0 9 * * 1 FAQ

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

0 9 * * 1 means: Run once a week, Monday at 09:00. 0 9 * * 1 fires Monday at 9am, the start of the working week and the most popular slot for weekly kickoff automation. Monday is day-of-week 1 in every dialect (the numbering only disagrees about Sunday), so this one ports cleanly.

How do I write "every monday at 9am" in GitHub Actions?

Use 0 9 * * 1 in the schedule's cron field. A bank holiday Monday still triggers this job. Cron has no holiday awareness, so guard human-facing Monday sends with a holiday check or they will fire on long weekends.

How do I write "every monday at 9am" for AWS EventBridge?

EventBridge uses six fields with a required year and a ? placeholder in one day field: 0 9 ? * 1 *. Wrap it as cron(0 9 ? * 1 *) in the console or CloudFormation.

What is the Quartz equivalent of 0 9 * * 1?

Quartz is seconds-first with a trailing year, so the equivalent is 0 0 9 ? * 1 *. Remember Quartz numbers Sunday as 1, the opposite of Unix.

Related cron patterns

More cron tools

Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.