Cron Day of Month Field
The day-of-month field (third in standard 5-field cron) specifies which day(s) of the month the job runs. Valid values are 1–31. Quartz adds L (last day) and W (nearest weekday) extensions.
Quick Reference
| Value | Meaning | Example |
|---|---|---|
| * | Every day of the month | 0 0 * * * |
| 1 | The 1st of every month | 0 0 1 * * |
| 15 | The 15th of every month | 0 0 15 * * |
| 1,15 | The 1st and 15th | 0 0 1,15 * * |
| L | Last day of the month (Quartz only) | 0 0 0 L * ? |
| 15W | Nearest weekday to the 15th (Quartz only) | 0 0 0 15W * ? |
| ? | No specific value (Quartz/AWS — used with day-of-week) | 0 0 0 ? * MON |
Valid Values
1
Minimum
31
Maximum
* , - / ? L W
Allowed special characters
Examples
1First day of every month1515th of every monthLLast day of every month (Quartz/Spring only)1,15Twice monthly — 1st and 15th?No specific value — required by Quartz/AWS when day-of-week is setPlatform Support
Platforms that include the Day of Month field:
Standard Linux/UnixGitHub ActionsGoogle Cloud SchedulerKubernetes CronJobAzure Functions (NCRONTAB)AWS EventBridgeQuartz SchedulerSpring @ScheduledJenkinsApache Airflow
Frequently Asked Questions
What happens in months with fewer than 31 days? ▾
If you specify day 31 and the month has only 30 days, the job does not run that month. Use the Quartz "L" character for the last day of whatever month it is.
Can I specify "first Monday of the month" in standard cron? ▾
Not directly. Quartz supports this with the # character (e.g., "MON#1"). In standard 5-field cron, you'd use a script that checks whether it's the first Monday at runtime.
Built & maintained by Danny Vargas
Last updated January 2026·Parsing runs in your browser — no expression leaves your device