Cron Monthly Example — Real Schedules for Monthly Jobs

💡A monthly cron job runs on a specific day and time each month. Use `0 0 1 * *` for the first day of every month, then test it with ToolDock CRON Expression Parser before deploy.

Pattern Examples

First day at midnight

❌ Wrong

0 0 * * 1 /usr/local/bin/run-billing

✅ Fixed

0 0 1 * * /usr/local/bin/run-billing

The third field is day-of-month. `1` means the first day, not Monday.

First day at 06:30

❌ Wrong

30 6 * 1 * node scripts/export-report.js

✅ Fixed

30 6 1 * * node scripts/export-report.js

Month should stay `*` unless you want January only.

Monthly backup

❌ Wrong

0 0 30 2 * /usr/local/bin/backup

✅ Fixed

0 0 28 * * /usr/local/bin/backup

Day 30 in February is invalid on many systems. Pick a safe day or handle month-end separately.

Test Your Schedule

Real-World Usage

Monthly billing run

0 2 1 * * /usr/local/bin/run-billing

Runs billing at 02:00 on the first day of every month.

Usage report export

30 6 1 * * node scripts/export-report.js

Creates a monthly report after midnight data loads finish.

S3 cleanup job

15 3 1 * * python cleanup_archives.py

Deletes archives older than policy limit once a month.

Related Guides

Frequently Asked Questions

How do I run a cron job every month?

Set the day-of-month and time explicitly, for example `0 0 1 * *` for midnight on the first day of every month.

What is the safest monthly cron schedule?

The first or twenty-eighth day is safest because every month contains those dates.

Can I schedule a job for the end of the month in cron?

Not portably with basic cron syntax. Most setups need an extra shell condition or a separate scheduler rule.

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