ClockOrbit

Monthly

0 0 1 * *

Run on the 1st of every month at 00:00.

This preview is live: the table below shows the actual next run times for 0 0 1 * * in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.

Next runs
valid
Upcoming runs
Tue, Dec 1 2026
00:00 UTC
in 24 days
Fri, Jan 1 2027
00:00 UTC
in 55 days
Mon, Feb 1 2027
00:00 UTC
in 86 days
Mon, Mar 1 2027
00:00 UTC
in 114 days
Thu, Apr 1 2027
00:00 UTC
in 145 days
Sat, May 1 2027
00:00 UTC
in 175 days
Tue, Jun 1 2027
00:00 UTC
in 206 days
Thu, Jul 1 2027
00:00 UTC
in 236 days
Sun, Aug 1 2027
00:00 UTC
in 267 days
Wed, Sep 1 2027
00:00 UTC
in 298 days
Fri, Oct 1 2027
00:00 UTC
in 328 days
Mon, Nov 1 2027
00:00 UTC
in 359 days
Wed, Dec 1 2027
00:00 UTC
in 389 days
Sat, Jan 1 2028
00:00 UTC
in 420 days
Tue, Feb 1 2028
00:00 UTC
in 451 days
Wed, Mar 1 2028
00:00 UTC
in 480 days
Sat, Apr 1 2028
00:00 UTC
in 511 days
Mon, May 1 2028
00:00 UTC
in 541 days
Thu, Jun 1 2028
00:00 UTC
in 572 days
Sat, Jul 1 2028
00:00 UTC
in 602 days
Tue, Aug 1 2028
00:00 UTC
in 633 days
Fri, Sep 1 2028
00:00 UTC
in 664 days
Sun, Oct 1 2028
00:00 UTC
in 694 days
Wed, Nov 1 2028
00:00 UTC
in 725 days
Fri, Dec 1 2028
00:00 UTC
in 755 days

What 0 0 1 * * means

0 0 1 * * is the canonical monthly job, midnight on the 1st of every month, the value @monthly expands to. The 1 in the day-of-month field is what makes it monthly; the month and day-of-week fields stay wildcard.

First-of-month jobs handle the calendar rollover: generating last month's reports, resetting monthly quotas and budgets, issuing recurring invoices, and archiving the previous month's data. It is the heartbeat of most billing and reporting systems.

Field-by-field breakdown

Unix cron has five fields. Here is what each one is doing in this expression:

FieldValueMeaning
Minute0minute = 0
Hour0hour = 0
Day of month1day-of-month = 1
Month*every month
Day of week*every day-of-week

First of the month at midnight in every scheduler

The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target, the field count and day-of-week numbering differ between them.

SchedulerExpressionCopy
Unix / crontab0 0 1 * *
GitHub Actions0 0 1 * *
Kubernetes CronJob0 0 1 * *
Vercel Cron0 0 1 * *
Quartz0 0 0 1 * ? *
Spring0 0 0 1 * ?
AWS EventBridge0 0 1 * ? *

Dialect note: @monthly = 0 0 1 * * on Unix/Vercel. EventBridge requires ? in day-of-week: 0 0 1 * ? *.

When you would use 0 0 1 * *

The gotcha worth knowing

Day-of-month and day-of-week interact: if you set both (e.g. 0 0 1 * 1), most cron implementations fire when EITHER matches, not both, so that would run on the 1st AND every Monday. Keep one of them wildcard.

People also search for

cron first of the month0 0 1 * * meaningcrontab monthly 1stcron once a month

0 0 1 * * FAQ

What does the cron expression 0 0 1 * * mean?

0 0 1 * * means: Run on the 1st of every month at 00:00. 0 0 1 * * is the canonical monthly job, midnight on the 1st of every month, the value @monthly expands to. The 1 in the day-of-month field is what makes it monthly; the month and day-of-week fields stay wildcard.

How do I write "first of the month at midnight" in GitHub Actions?

Use 0 0 1 * * in the schedule's cron field. Day-of-month and day-of-week interact: if you set both (e.g. 0 0 1 * 1), most cron implementations fire when EITHER matches, not both, so that would run on the 1st AND every Monday. Keep one of them wildcard.

How do I write "first of the month at midnight" for AWS EventBridge?

EventBridge uses six fields with a required year and a ? placeholder in one day field: 0 0 1 * ? *. Wrap it as cron(0 0 1 * ? *) in the console or CloudFormation.

What is the Quartz equivalent of 0 0 1 * *?

Quartz is seconds-first with a trailing year, so the equivalent is 0 0 0 1 * ? *. Remember Quartz numbers Sunday as 1, the opposite of Unix.

Related cron patterns

More cron tools

Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.