Cron Expression for On the First of the Month

First of the month — 12 times a year
0 0 1 * *

Cron reads this as: at 00:00, on day-of-month 1.

Next 5 runs

Computed in your browser's local time zone. Cron itself evaluates against the server's zone, which on most cloud hosts is UTC — see time zones & DST if that distinction matters here.

When to use this schedule

Midnight on the 1st — monthly billing runs, invoice generation, quota resets, archiving the previous month. @monthly is the shorthand form.

What to watch out for

A job that processes "last month" at 00:00 on the 1st is doing the right thing; a job that processes "this month" is running before the month has any data in it. Beyond that, the 1st is safe in a way that other days are not — it exists in every month, unlike the 29th, 30th and 31st. If you need the end of the month instead, that needs a different approach entirely.

The crontab line

0 0 1 * * /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1

Redirect the output somewhere you will actually read it — by default cron mails it, and on a host with no mail transport that means it is discarded. See the crontab guide for the surrounding syntax.

Related schedules

Variations on first of the month
ExpressionSchedule
@monthlyShorthand for the same schedule
0 3 1 * *The 1st at 03:00
0 0 1,15 * *1st and 15th

Build your own

Need something this page does not cover? Compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library collects sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.