# Run a Cron Job Twice a Month

> The cron expression for the 1st and 15th of every month is 0 0 1,15 * *. Field meanings, next runs, and variations for paydays and mid-month jobs.

```
0 0 1,15 * *
```

In plain English: At 00:00 (midnight), on day 1 and 15 of the month.

A list in the day-of-month field fires on each value, so 0 0 1,15 * * runs at midnight on the 1st and the 15th — the semi-monthly rhythm of payroll, invoicing and twice-monthly reports. Because both days exist in every month, it never skips.

## Field by field

| Field | Value | Meaning |
|---|---|---|
| Minute | `0` | 0 |
| Hour | `0` | 0 |
| Day of month | `1,15` | 1 and 15 |
| Month | `*` | every month |
| Day of week | `*` | every weekday |

## Variations

- `0 9 1,15 * *` — 09:00 instead of midnight
- `0 0 1,16 * *` — the 1st and 16th, splitting long months more evenly
- `0 0 */14 * *` — not 'every 14 days' — it matches the 1st, 15th and 29th

## FAQ

### How do I run something every two weeks?

Cron can't count weeks. */14 in the day-of-month field matches the 1st, 15th and 29th, not every 14 days. Run weekly and let the job skip alternate weeks — for example, continue only when the ISO week number (date +%V) is even.

### What if I pick the 31st?

The job only runs in months that have one, so 0 0 15,31 * * would skip February, April, June, September and November. Stick to days 1–28 for a dependable schedule.

## Related schedules

- [0 0 1 * * — Run a Cron Job on the First of Every Month](https://www.devkult.com/cron/first-of-month.md)
- [0 0 1 */3 * — Run a Cron Job Every Quarter](https://www.devkult.com/cron/every-quarter.md)
- [0 0 28-31 * * — Run a Cron Job on the Last Day of the Month](https://www.devkult.com/cron/last-day-of-month.md)

Open the interactive page: https://www.devkult.com/cron/twice-a-month