Cron for the first of the month

Quick answer

0 0 1 * * fires at 00:00 on day-of-month 1 — once per month. Same pattern as monthly jobs; TryDevSnip previews the next five runs locally.

Cron expression: 0 0 1 * *

Gotcha: day-of-month 1 is calendar day 1, not “first weekday.” If the host is UTC, “midnight on the 1st” may still be the previous local evening.

Paste this cron expression into your crontab, or into the schedule field of whichever runner you use — the five-field syntax below is shared by cron, most CI schedulers, and container orchestrators. The sections that follow break the cron job down field by field and flag the timing edge cases that apply to this particular schedule.

What each field means here

A standard crontab line has five fields, read left to right. This is what each one is set to in0 0 1 * *:

FieldValueAllowed rangeMeaning here
Minute00–59At minute 0
Hour00–23At hour 0
Day of month11–31At day of the month 1
Month*1–12Every month
Day of week*0–6 (Sunday = 0)Every day of the week

Before you ship this schedule

Using it outside a crontab

GitHub Actions and Kubernetes CronJob both accept this same five-field syntax, so the expression carries over unchanged — what changes is the clock it runs against:

WhereSame expression?Timezone
crontabYesHost timezone
GitHub ActionsYesAlways UTC
Kubernetes CronJobYesUTC unless timeZone is set

More schedules: every 6 hours · every 12 hours · yearly jobs · every 5 minutes · hourly jobs · midnight daily · every 15 minutes · every 30 minutes · noon · weekdays 9am · daily 2am · weekly · monthly · full cheat sheet

Frequently asked questions

What does 0 0 1 * * mean?

0 0 1 * * fires at 00:00 on day-of-month 1 — once per month. Same pattern as monthly jobs; TryDevSnip previews the next five runs locally.

Are next run times in my local timezone?

Cron Helper previews next runs in your browser’s local timezone. Many production schedulers use UTC — always compare before changing live jobs.

Is my cron expression uploaded?

No. Explanation and next-run math run client-side on TryDevSnip. Expressions are not uploaded to our servers for processing.

TryDevSnip