devkult_
tools29converters34
home/cron/every-year

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

FieldValueMeaning
Minute00
Hour00
Day of month11
Month1January
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 start
0 0 31 12 *midnight at the start of 31 December

Tweak 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.

Related schedules

New to cron syntax? Read Cron Expressions Explained, Field by Field. Job not firing? Work through Cron Job Not Running? 10 Things to Check.