Cron: Yearly (Jan 1) (0 0 1 1 *)
Plain-English meaning, run times, and visual editor for the 0 0 1 1 * cron schedule. No sign-up required.
What does 0 0 1 1 * mean?
The cron expression 0 0 1 1 * translates to “At 00:00, on the 1st, in January”. It is one of the most commonly used schedules (yearly (jan 1)).
Two fields are pinned here: day-of-month `1` and month `1` (January), with minute 0 and hour 0. Together they fire the job exactly once a year, at 00:00 on January 1st. This is as infrequent as common cron schedules get - suited to annual tasks like yearly archival, resetting a fiscal-year counter, rotating a long-lived credential, or a "happy new year" send. Because a whole year passes between runs, it is worth pairing this schedule with monitoring or a dead-man's-switch: a job that only fires annually is the easiest one to silently break without anyone noticing until next January.
Use the builder above to tweak this expression and instantly see how the description and the next run times change.
Example runs from Jan 1, 2026 (UTC)
- Fri Jan 01 2027, 00:00 UTC
- Sat Jan 01 2028, 00:00 UTC
- Mon Jan 01 2029, 00:00 UTC
- Tue Jan 01 2030, 00:00 UTC
Frequently Asked Questions
About cron expressions and this generator.
Set both day-of-month and month fields to 1: "0 0 1 1 *". This executes on January 1st at midnight.
Set the day to 31 and month to 12: "0 0 31 12 *".
Related cron expressions
From the blog
Cron Expressions Explained: A 5-Field Cheatsheet
A technical reference for POSIX cron expressions: the 5-field syntax, step-value math traps, and the Day-of-Month vs. Day-of-Week OR-behavior that catches everyone.
Read →cronCron Syntax Across Schedulers: Unix vs. Quartz vs. AWS EventBridge
Why your cron expression failed in the cloud. A technical breakdown of the differences between POSIX, Java Quartz, AWS, and Node.js schedulers.
Read →cronWhy Your Cron Job Failed: Debugging Timezones, PATH Variables, and Overlaps
A practical guide to diagnosing standard runtime failure modes in cron daemons. Learn why your script works in the terminal but fails silently in the background.
Read →