Cron expression

First day of the month

0 0 1 * *

Runs once a month, at 00:00 on the 1st.

Runs per month

≈ 1

Next run (UTC)

Sun 00:00

On CronEngine

Runs on the free plan

What each part means

Minute 0 at minute 0
Hour 0 at hour 0
Day of month 1 on day 1
Month * every month
Day of week * every day of the week

Next runs

  1. 1 Sunday 1 November 2026 00:00 UTC
  2. 2 Tuesday 1 December 2026 00:00 UTC
  3. 3 Friday 1 January 2027 00:00 UTC
  4. 4 Monday 1 February 2027 00:00 UTC
  5. 5 Monday 1 March 2027 00:00 UTC

See these in your own timezone, or change the schedule →

Good to know

Typical uses: Monthly invoices, usage resets, monthly reports.

Copy and paste

crontab -e Crontab
0 0 1 * * /path/to/script.sh
.github/workflows/scheduled.yml GitHub Actions
on:
  schedule:
    - cron: '0 0 1 * *'

GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy. How to start it on time.

routes/console.php Laravel
Schedule::command('your:command')->monthly();

Variations

0 9 1 * * The 1st of every month at 09:00
0 9 15 * * The 15th of every month at 09:00
0 23 L * * The last day of every month at 23:00 →

Questions

What is the cron expression for first day of the month?

0 0 1 * *. Runs once a month, at 00:00 on the 1st.

Can GitHub Actions run first day of the month?

Yes, with cron: '0 0 1 * *'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.