The cron expression for every month is 0 0 1 * *. Runs at midnight on the 1st of every month. The standard choice for monthly billing runs and reports.
Paste an expression or choose a starting schedule below.
Select a field to edit it.
Schedule summary
Build a schedule
Use the fields above to edit this expression, or replace it with a simple schedule here.
Upcoming runs
The next 50 runs, shown in the schedule timezone and your local time.
About 0 0 1 * *
0 0 1 * * — Runs at midnight on the 1st of every month. The standard choice for monthly billing runs and reports.
Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:
| Field | Position | Matches |
|---|---|---|
0 | minute | 0 |
0 | hour | 0 |
1 | day of month | 1 |
* | month | every month |
* | day of week | every day of the week |
New to cron? Read the syntax reference or the FAQ.
Use it in crontab or GitHub Actions
The snippets below use UTC. The crontab timezone setting requires a compatible daemon such as Cronie. GitHub Actions defaults to UTC and accepts a timezone on each schedule. For other timezones, Kubernetes, EventBridge Scheduler, or Vercel, use the export menu in the calculator above.
crontab
# At 12:00 AM, on day 1 of the month # CRON_TZ requires a cron implementation that supports it, such as Cronie. CRON_TZ=UTC 0 0 1 * * /path/to/command
GitHub Actions workflow
# At 12:00 AM, on day 1 of the month
on:
schedule:
- cron: '0 0 1 * *'
timezone: "UTC"