yearThe year field in cron expressions
Quartz has an optional seventh field for the year, and AWS EventBridge has a required sixth field. Most schedules use * so they repeat every year.
The rules
- Quartz: the year is optional, 1970-2099.
- EventBridge: the year is required, use * for every year.
- A specific year makes a one-off or limited-time schedule.
- Ranges and lists work: 2026-2028.
Examples you can copy
0 0 12 1 1 ? 2030At 12:00 UTC, on the 1st of the month, in Jan, in 2030. Fires once: noon on 1 January 2030.
First runs after 1 Jan 2027 (UTC): Tue, 01 Jan 2030, 12:00
0 0 12 ? * MON 2026-2027At 12:00 UTC, on Mon, in 2026, 2027. Mondays at noon during 2026 and 2027 only.
First runs after 1 Jan 2027 (UTC): Mon, 04 Jan 2027, 12:00 ยท Mon, 11 Jan 2027, 12:00 ยท Mon, 18 Jan 2027, 12:00
0 12 1 1 ? 2031At 12:00 UTC, on the 1st of the month, in Jan, in 2031. EventBridge one-off in 2031.
First runs after 1 Jan 2027 (UTC): Wed, 01 Jan 2031, 12:00
0 12 * * ? *At 12:00 UTC. Every day at noon, every year.
First runs after 1 Jan 2027 (UTC): Fri, 01 Jan 2027, 12:00 ยท Sat, 02 Jan 2027, 12:00 ยท Sun, 03 Jan 2027, 12:00
Common mistakes
- Forgetting the year in EventBridge. It rejects a five-field expression.
- Setting a year in the past. The schedule never fires and nothing warns you.
Frequently asked questions
Is the year field useful?
Rarely, for repeating jobs. It is handy for one-off future events.