# Run a Cron Job Once a Year

> The cron expression for once a year is 0 0 1 1 * — midnight on January 1st, the same as @yearly. Field meanings, next run date and variations.

```
0 0 1 1 *
```

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

0 0 1 1 * fires a single time per year, at midnight on 1 January. Crons that support shortcuts accept @yearly or @annually for the same thing. Yearly jobs are rare enough that failures go unnoticed, so make sure something alerts you if one doesn't run — you won't get another chance for twelve months.

## Field by field

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

## Variations

- `@yearly` — the shortcut form (also @annually)
- `0 9 1 4 *` — 1 April at 09:00 — for example, a fiscal-year start
- `0 0 31 12 *` — midnight at the start of 31 December

## FAQ

### Is @yearly the same as 0 0 1 1 *?

Yes, in crons that support @ shortcuts (Vixie cron, cronie and most hosted schedulers). Minimal crons may only accept five fields, so the explicit form is the portable choice.

### How do I test a yearly job?

Don't wait a year: run the command by hand, then paste the expression into a cron explainer to confirm the next run date.

## Related schedules

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

Open the interactive page: https://www.devkult.com/cron/every-year