Cron expression for twice a month

ExamplesPlanner

The cron expression for twice a month is 0 0 1,15 * *. Runs at midnight on the 1st and 15th. This is not every two weeks: gaps vary from 14 to 17 days. Use an interval scheduler for a fixed 14-day cadence.

Paste an expression or choose a starting schedule below.

Select a field to edit it.

Start with:
Add to planner

Schedule summary

At 12:00 AM, on day 1 and 15 of the month
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.

Calculating…

About 0 0 1,15 * *

0 0 1,15 * * — Runs at midnight on the 1st and 15th. This is not every two weeks: gaps vary from 14 to 17 days. Use an interval scheduler for a fixed 14-day cadence.

Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:

FieldPositionMatches
0minute0
0hour0
1,15day of month1, 15
*monthevery month
*day of weekevery 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 and 15 of the month
# CRON_TZ requires a cron implementation that supports it, such as Cronie.
CRON_TZ=UTC
0 0 1,15 * * /path/to/command

GitHub Actions workflow

# At 12:00 AM, on day 1 and 15 of the month
on:
  schedule:
    - cron: '0 0 1,15 * *'
      timezone: "UTC"

Monthly & yearly schedules

Build a custom cron expression →