Run a Cron Job Once a Year
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.
0 0 1 1 *In plain English: At 00:00 (midnight), on day 1 of the month, in January.
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
@yearlythe shortcut form (also @annually)0 9 1 4 *1 April at 09:00 — for example, a fiscal-year start0 0 31 12 *midnight at the start of 31 DecemberTweak any of these in the crontab explainer to see the schedule in plain English and its next run times.
Frequently asked questions
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.
New to cron syntax? Read Cron Expressions Explained, Field by Field. Job not firing? Work through Cron Job Not Running? 10 Things to Check.