Cron Every Monday
Monday cron without numbering doubt — 0 0 * * 1 previewed live, with the Sunday-first dialects called out explicitly.
History
Valid expressions you run are kept here — on this device only.
The plain-English description appears here.
| # | UTC | UTC time | DST |
|---|---|---|---|
| Upcoming runs for a valid expression appear here. | |||
—Press ? for shortcuts
Platform variants
Classic cron
Cron expression: 0 0 * * 1
Day-of-week 1 is Monday; 0 and 7 both mean Sunday.
Quartz
Cron expression: 0 0 0 ? * MON
Quartz numbers days 1–7 = SUN–SAT — the MON name avoids the shift.
AWS EventBridge
Cron expression: cron(0 0 ? * MON *)
EventBridge also numbers days 1–7 = SUN–SAT — MON sidesteps that.
Kubernetes
Cron expression: 0 0 * * 1
Paste into spec.schedule of a CronJob unchanged.
GitHub Actions
Cron expression: 0 0 * * 1
Runs Mondays at 00:00 UTC in on.schedule.cron.
Also covers: weekly on monday
Do it offline:$ (crontab -l; echo "0 0 * * 1 /path/to/job") | crontab -
How to use it
- Use 0 0 * * 1 in crontab, Kubernetes and GitHub Actions — classic numbering makes Monday 1, and 0 or 7 Sunday.
- For Quartz or EventBridge take their rows below: both count 1 as Sunday, so the safe spelling is the MON name.
- Want a kinder hour? Edit the second field in the tester — 0 6 * * 1 runs at 06:00 Monday.
Weekly rituals — digest mails, dependency bumps, Monday reports — pin to 0 0 * * 1: midnight as the week opens. Day-of-week is where platforms genuinely disagree, so beside the live runs this page spells out who counts Monday as 1, who as MON, and who shifts the scale.
Examples
0 0 * * 1describes At 00:00, only on Monday
next 1 2026-08-03T00:00:00.000Z
next 2 2026-08-10T00:00:00.000Z
next 3 2026-08-17T00:00:00.000Z
next 4 2026-08-24T00:00:00.000Z
next 5 2026-08-31T00:00:00.000ZAugust 2026 opens on a Saturday, so the first Monday previewed is the 3rd — and the month holds five of them, a week apart, all listed.
0 0 * * MONdescribes At 00:00, only on Monday
next 1 2026-08-03T00:00:00.000Z
next 2 2026-08-10T00:00:00.000Z
next 3 2026-08-17T00:00:00.000Z
next 4 2026-08-24T00:00:00.000Z
next 5 2026-08-31T00:00:00.000ZThe name form compiles to the identical schedule — the run lists match — and MON reads the same everywhere it is accepted, ending numbering disputes.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
1 is not Monday everywhere
Classic cron treats Monday as 1, Sunday as 0 or 7. Quartz and EventBridge count 1–7 from Sunday, silently turning a copied numeric weekday into the day before. Cross-platform, write MON: every dialect here reads names identically.
Common errors
Day-of-month and day-of-week are both restricted — cron runs when EITHER matches, which surprises most people.- The tempting first-Monday spelling 0 0 1-7 * 1 fires on days one through seven AND every Monday — restricting both day fields makes cron take either. This warning is the only signal.
FAQ
Why did my Monday job fire on Sunday on EventBridge?
The scale shifted: EventBridge and Quartz number the week from Sunday as 1, so a copied numeric 1 lands a day early. Write MON, or use the pre-shifted rows here.
Do 0 and 7 mean the same day in the last field?
Yes — both are Sunday, a deliberate redundancy: the two spellings produce identical run lists. Neither is Monday, the usual source of off-by-one weekly jobs.
How do I run on Monday and Thursday together?
List the days: 0 0 * * 1,4 fires at midnight on both. Ranges work too — 1-5 belongs to the weekday page — and names can join lists where accepted.