Crontab Every Monday at Midnight (0 0 * * 1)

Run a cron job every Monday at midnight using the day-of-week field. The standard weekly maintenance window schedule.

Weekly0 0 * * 1

Detailed Explanation

Running a Cron Job Every Monday

The expression 0 0 * * 1 runs at midnight every Monday. The day-of-week field is set to 1, which represents Monday (Sunday is 0, Saturday is 6).

Field Breakdown

Field Value Meaning
Minute 0 At minute 0
Hour 0 At midnight
Day of Month * Any day
Month * Every month
Day of Week 1 Monday

Day-of-Week Values

The day-of-week field uses numeric values:

Value Day
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday

Some cron implementations also accept 7 for Sunday and three-letter abbreviations (MON, TUE, WED, etc.), but numeric values are the most portable.

@weekly Shorthand

The @weekly shorthand is equivalent to 0 0 * * 0 (Sunday at midnight), not Monday. If you want Monday, you must use the explicit form.

Changing the Day

Simply change the last field:

  • Every Tuesday: 0 0 * * 2
  • Every Friday: 0 0 * * 5
  • Every Sunday: 0 0 * * 0

Use Case

Monday schedules are standard for start-of-week maintenance: running database VACUUM/ANALYZE, clearing weekly caches, generating Monday morning reports, triggering weekly CI/CD builds, or sending weekly status emails.

Try It — Crontab Cheat Sheet

Open full tool