Cron Every Year

With 1 in the day-of-month field and 1 in the month field, the job runs on January 1st. The 0 0 minute and hour fields pin it to midnight, so it fires once per year at the start of the year.

Cron Expression
0 0 1 1 *

Field Breakdown

FieldValueMeaning
Minute0At minute 0
Hour0At midnight (00:00)
Day of Month1The 1st
Month1January
Day of Week*Any day of the week

Variations

0 0 1 1 *Midnight on January 1st
@yearlyShorthand alias for 0 0 1 1 * (also @annually)
0 0 1 7 *Once a year on July 1st (fiscal-year start)

Common Use Cases

  • Annual report generation and archival
  • Yearly subscription or license renewals
  • New-year resets of counters and logs

Tips & Best Practices

Most cron implementations accept the @yearly (or @annually) shorthand.

Change the month field to match a fiscal year start (e.g. 7 for July).

For a specific date like a renewal day, set both day-of-month and month explicitly.

Related Intervals