Cron expression for the first Monday of every month
Run a scheduled job on the first Monday of every month at midnight.
0 0 0 ? * MON#1Runs on the first Monday of every month at midnight.
Primary dialect: Quartz
Next run examples
Static preview generated for the primary dialect. AWS examples use UTC; other examples use Europe/Berlin for display.
Jul 6, 2026, 12:00 AM
Aug 3, 2026, 12:00 AM
Sep 7, 2026, 12:00 AM
Oct 5, 2026, 12:00 AM
Nov 2, 2026, 12:00 AM
Dialect versions
Unix / Linux
0 0 0 ? * MON#1Standard Unix/Linux cron expression when this schedule is expressible with five fields.
AWS EventBridge
cron(0 0 ? * MON#1 *)AWS EventBridge cron schedules are evaluated in UTC. Use rate(...) for simple fixed intervals when possible.
Quartz
0 0 0 ? * MON#1Quartz includes a leading seconds field and supports additional day operators.
Kubernetes
Kubernetes CronJobs use standard five-field cron syntax. Non-standard operators require job-level logic.
Variants
First Monday at 09:00
cron(0 9 ? * MON#1 *)AWS-style first Monday at 09:00 UTC.
Second Monday
0 0 0 ? * MON#2Quartz expression for the second Monday.
First weekday of month
0 0 0 1W * ?Quartz expression for the nearest weekday to the first day.
Kubernetes notes
- Kubernetes CronJobs use standard five-field cron syntax.
- "Set concurrencyPolicy
- restartPolicy
- and history limits based on expected runtime and failure behavior."
Common mistakes
- Forgetting to confirm which timezone the scheduler uses.
- Assuming the schedule starts relative to deployment time instead of matching wall-clock fields.
FAQ
Can Unix cron express the first Monday of the month?
Not exactly with schedule fields alone. Use a script guard or a scheduler dialect like AWS or Quartz that supports `#`.
What does MON#1 mean?
`MON#1` means the first Monday of the month in AWS EventBridge and Quartz-style cron.