CRON First Day of Month — Correct Pattern and Use Cases

💡To run a cron job on the first day of every month, use day-of-month `1` and keep month as `*`. The standard pattern is `0 0 1 * *`, and ToolDock CRON Parser shows the exact run schedule.

Pattern Examples

Correct first-day pattern

❌ Wrong

0 0 * * 1 /srv/app/reset-quotas.sh

✅ Fixed

0 0 1 * * /srv/app/reset-quotas.sh

The fifth field is day-of-week. The third field controls the calendar day of the month.

Avoid month lock

❌ Wrong

0 0 1 1 * php artisan invoices:generate

✅ Fixed

0 0 1 * * php artisan invoices:generate

Setting month to `1` runs only in January.

Business-hours schedule

❌ Wrong

0 1 1 * * bundle exec rake newsletter:prepare

✅ Fixed

15 8 1 * * bundle exec rake newsletter:prepare

Use a real business-time example when you want morning execution, not 01:00.

Test Your Schedule

Real-World Usage

Invoice generation

0 4 1 * * php artisan invoices:generate

Creates invoices at 04:00 on the first calendar day of each month.

Quota reset

0 0 1 * * /srv/app/reset-quotas.sh

Resets user quotas exactly when the new month starts.

Monthly newsletter prep

15 8 1 * * bundle exec rake newsletter:prepare

Builds newsletter content each month before editors review it.

Related Guides

Frequently Asked Questions

What cron expression means the first day of every month?

`0 0 1 * *` runs at midnight on the first day of every month in standard five-field cron.

Does `1` in cron mean Monday?

Only in the day-of-week field. In the day-of-month field, `1` means the first calendar day.

Can I run first day of month at a custom time?

Yes. Change the minute and hour fields, for example `30 6 1 * *` for 06:30.

All tools run in your browser. Your data never leaves your device.