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.
0minute0hour1day*month*weekdayIn Plain English
What your cron expression actually means.
At 12:00 AM, on day 1 of the month
Upcoming Executions
Preview the next 50 times this schedule will trigger.
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
Both snippets are ready to paste. A crontab runs in the server's local timezone; GitHub Actions always evaluates schedules in UTC. For Kubernetes, AWS EventBridge, or Vercel, use the export menu in the calculator above.
crontab
# At 12:00 AM, on day 1 of the month 0 0 1 * * /path/to/command
GitHub Actions workflow
# At 12:00 AM, on day 1 of the month
# Note: GitHub Actions always runs schedules in UTC.
on:
schedule:
- cron: '0 0 1 * *'