Cron: Every Month
0 0 1 * * runs once a month, at midnight on the 1st — the day-of-month field is pinned to 1 while month and day-of-week stay wildcarded. It's the standard pattern for monthly billing runs, archival jobs, and reports that align with calendar months.
0 0 1 * *
Examples & Variations
Common Mistakes
- Picking a day-of-month past 28 for a schedule meant to run "every month" — February doesn't have a 30th or 31st, so those runs simply never fire in short months.
- Assuming "every month" always means the 1st — some workflows actually need the last day of the month, which standard cron can't express directly (see the last-day-of-month guide).
- Forgetting that day-of-month and day-of-week are OR'd together in standard cron — setting both to non-wildcard values doesn't mean "AND," it means either condition triggers the job.
Best Practices
- For billing-cycle or calendar-month jobs, the 1st at midnight is the safest anchor point since every month has one.
- If you need quarterly instead of monthly, use the month field's step or list syntax (0 0 1 1,4,7,10 * or 0 0 1 */3 *) rather than trying to compute quarters in the day-of-month field.
- Document explicitly whether "monthly" in your system means calendar month or a rolling 30-day window — they're not the same, and cron only expresses the former.
Frequently Asked Questions
- Is 0 0 1 * * the same as @monthly?
- Yes — @monthly is a standard cron nickname that expands to 0 0 1 * *, firing at midnight on the first day of every month.
- How do I schedule a job for the 15th of every month instead?
- Change the day-of-month field: 0 0 15 * * runs at midnight on the 15th of every month.
- What happens in February when day-of-month is set to 30?
- The job simply doesn't run that month — cron checks the literal calendar date, and if it doesn't exist (Feb 30, Feb 31, Apr 31), that occurrence is silently skipped.
Related Tools
Cron Parser
Translate cron expressions to plain English
Cron Cheat Sheet
Quick reference for cron syntax, special characters, and shortcuts
Cron Examples Library
Browse and search common cron expression examples
Cron: Every Week
The cron expression for every week is 0 0 * * 0, running once weekly on Sunday at midnight. See weekly scheduling examples and best practices.
Cron: Every Year
The cron expression for every year is 0 0 1 1 *, running once annually on January 1st. See yearly scheduling examples and best practices.
Cron: Every Monday
The cron expression for every Monday is 0 0 * * 1, running weekly at midnight. See Monday scheduling examples for reports, digests, and jobs.