Cron on the First Monday of Every Month

Schedule a cron job on the first Monday of each month using 0 9 1-7 * 1. Complete field-by-field breakdown for first-weekday-of-month patterns.

Cron Expression

0 9 1-7 * 1

Field Breakdown

FieldValueMeaning
Minute0At 0
Hour9At 9
Day of Month1-7From 1 to 7
Month*Every month (1–12)
Day of Week1At Monday

Detailed Explanation

The cron expression 0 9 1-7 * 1 schedules a task to run at 9:00 AM on Monday, but only during the first seven days of each month, effectively targeting the first Monday.

Field-by-field breakdown:

  • 0 (Minute): At minute 0. The task fires at the top of the hour.
  • 9 (Hour): At hour 9 (9 AM). The task runs at the start of the business day.
  • 1-7 (Day of Month): Days 1 through 7. This range covers the first week of the month, guaranteeing exactly one Monday falls within it.
  • * (Month): Every month from January through December. No restriction on which month.
  • 1 (Day of Week): Monday only. The value 1 represents Monday in standard cron.

Important note about cron semantics: In standard cron, when both Day of Month and Day of Week are specified (not *), the job runs when EITHER condition is true (OR logic), not when both are true (AND logic). This means this expression will run on ALL Mondays AND on days 1-7 regardless of day of week. To truly target only the first Monday, wrap your command with a check: [ "$(date +\%d)" -le 7 ] && your_command and use 0 9 * * 1 as the cron expression, or use the expression as-is and add a day-of-week check in your script. This expression is supported by standard cron on Linux/macOS, as well as cloud services like AWS CloudWatch, Google Cloud Scheduler, and GitHub Actions.

Use Case

Ideal for scheduling monthly all-hands meeting reminders and agenda distribution on the first Monday of each month at the start of business.

Try It — Interactive Builder

at min 0, at hour 9, on day 1-7, on DOW 1

**/5*/10*/15*/300
**/2*/3*/6*/120
*1151,15*/2
*11,4,7,101,7
*1-50,615

Next 10 Executions

1.Mon, Mar 16, 2026, 09:00 AM
2.Mon, Mar 23, 2026, 09:00 AM
3.Mon, Mar 30, 2026, 09:00 AM
4.Wed, Apr 1, 2026, 09:00 AM
5.Thu, Apr 2, 2026, 09:00 AM
6.Fri, Apr 3, 2026, 09:00 AM
7.Sat, Apr 4, 2026, 09:00 AM
8.Sun, Apr 5, 2026, 09:00 AM
9.Mon, Apr 6, 2026, 09:00 AM
10.Tue, Apr 7, 2026, 09:00 AM

Ctrl+Shift+C to copy expression

Customize this expression