Cron first day of month

At 00:00 on day 1 of the month.

0 0 1 * *

minute · hour · day of month · month · day of week

What this expression selects

At 00:00 on day 1 of the month. This is a five-field calendar schedule, interpreted in the timezone you configure. It is not an instruction to wait a fixed duration after the last completion.

Common mistakes

Day 1 is a calendar boundary, not every 30 days. Leave day-of-week as * unless you want Vixie OR matching.

Next five runs in UTC

Computed at build time from . These are examples, not a live clock.

2026-11-01T00:00:00.000Z
2026-12-01T00:00:00.000Z
2027-01-01T00:00:00.000Z
2027-02-01T00:00:00.000Z
2027-03-01T00:00:00.000Z

A nearby variation

0 0 1 JAN,APR,JUL,OCT *

At 00:00 on day 1 of the month in JAN, APR, JUL, OCT. Compare it with the expression above before copying; the selected fields change the calendar times.

Preview live runs in your timezone ↗

Monitor the completed work

Copy a private ping URL from a CronPulse check. Set its schedule to 0 0 1 * * in the same timezone as your job runner, and add grace for runtime and scheduling delay. Send success after the work finishes, not when it is enqueued.

Add success and exit-code reporting to crontab. Missing pings are evaluated once a minute; this is not sub-minute monitoring.

Questions

Which time zone does this use?
The examples use UTC. Choose your IANA time zone in the cron helper; your host scheduler must use the same zone.
Does cron wait for the last job to finish?
This expression chooses clock times. It does not provide locking or an elapsed timer. Configure concurrency in the job runner.

Related schedules

Cron every quarter

Cron every minute between 9 and 5

Give your next job a heartbeat.

20 checks free. No card. Built in Ireland.

Create your first check ↗