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 * *:
| Field | Value | Allowed range | Meaning here |
|---|---|---|---|
| Minute | 0 | 0–59 | At minute 0 |
| Hour | 0 | 0–23 | At hour 0 |
| Day of month | 1 | 1–31 | At day of the month 1 |
| Month | * | 1–12 | Every month |
| Day of week | * | 0–6 (Sunday = 0) | Every day of the week |
Before you ship this schedule
- Cron runs in the scheduler’s timezone, not the viewer’s. GitHub Actions always runs schedules in UTC; Kubernetes CronJob accepts a timeZone field on newer API versions; a plain crontab follows the host.
- Some engines (Quartz, and several managed cloud schedulers) prepend a seconds field, making the same schedule a six-field expression. Pasting a five-field string into a six-field slot silently changes when it fires.
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:
| Where | Same expression? | Timezone |
|---|---|---|
| crontab | Yes | Host timezone |
| GitHub Actions | Yes | Always UTC |
| Kubernetes CronJob | Yes | UTC 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.