Run a Cron Job Yearly on January 1st
Runs at midnight on January 1st every year.
0 0 1 1 *Field Breakdown
0Minute
0–59
0Hour
0–23
1Day of Month
1–31
1Month
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
Resetting annual usage counters
Generating year-end reports
Renewing or auditing licenses
Archiving previous year’s data
$ crongen --customize "0 0 1 1 *"
Want to tweak this schedule or see the next run times?
Open in Generator