Run a Cron Job Yearly on January 1st

Runs at midnight on January 1st every year.

crontab -e
0011*
$0 0 1 1 *

Field Breakdown

0

Minute

0–59

0

Hour

0–23

1

Day of Month

1–31

1

Month

1–12

*

Day of Week

0–6

How It Works

Pinning both day-of-month to 1 and month to 1 creates a yearly schedule. The job fires once per year at midnight on New Year’s Day. Annual crons are used for license renewals, yearly data archival, and resetting annual counters. While it runs only once a year, it is critical that these jobs are monitored because a failure would not be retried for another 12 months.

The minute and hour are 0 (midnight), day-of-month is 1, and month is 1 (January). This combination matches only one moment in the entire year: January 1st at 00:00. The day-of-week remains a wildcard since the specific date already determines the day. This is the lowest-frequency standard cron schedule possible.

Platform Usage

Linux: "0 0 1 1 * /opt/scripts/yearly-archive.sh". For critical annual jobs, consider adding monitoring and alerting to ensure execution. In Kubernetes, set startingDeadlineSeconds generously to handle potential cluster maintenance around New Year. AWS EventBridge: "cron(0 0 1 1 ? *)".

Common Use Cases

1

Resetting annual usage counters

2

Generating year-end reports

3

Renewing or auditing licenses

4

Archiving previous year’s data

try-it

$ crongen --customize "0 0 1 1 *"

Want to tweak this schedule or see the next run times?

Open in Generator

Related Examples