Year calendar generator
Make a printable calendar for any year with week numbers and your own marked dates.
A clear answer. Here’s how.
Builds the twelve months from the Gregorian leap-year rule (every fourth year, except centuries not divisible by 400) and the weekday of each first day. ISO 8601 week numbers start on Monday, and week 1 is the week containing the year’s first Thursday, so a year has 53 weeks when 1 January is a Thursday, or a Wednesday in a leap year; early January days can belong to the last week of the year before. Public holidays are not built in because they vary by country and region: add the dates you want marked. The table downloads as CSV; before 1582 the dates would be proleptic, so the year is limited to 1583 onward.
How this is checked
4 reference checks passed These 4 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.
See the checks and where each expected answer comes from
Case 1
- Inputs
- Year 2026Week starts on mondayDates to mark (optional), one per line 01-01 New Year’s Day 12-25 Christmas Day
- Expected, and what Toolmoz gave
- Days in the year expected 365, Toolmoz 365Leap year expected No, Toolmoz NoWeekday of 1 January expected Thursday, Toolmoz ThursdayISO weeks in the year expected 53, Toolmoz 53Holidays marked expected 2, Toolmoz 2
- Where the expected answer comes from
- 1 January 2026 is a Thursday (checked with Python’s datetime), so the year has 365 days and 53 ISO weeks
- Allowed difference
- exact
Case 2
- Inputs
- Year 2024Week starts on mondayDates to mark (optional), one per line
- Expected, and what Toolmoz gave
- Days in the year expected 366, Toolmoz 366Leap year expected Yes, Toolmoz YesWeekday of 1 January expected Monday, Toolmoz MondayISO weeks in the year expected 52, Toolmoz 52
- Where the expected answer comes from
- 2024 is divisible by 4 and not a century, so it is a leap year; 1 January 2024 is a Monday and the last ISO week is 52
- Allowed difference
- exact
Case 3
- Inputs
- Year 2100Week starts on sundayDates to mark (optional), one per line
- Expected, and what Toolmoz gave
- Days in the year expected 365, Toolmoz 365Leap year expected No, Toolmoz NoWeekday of 1 January expected Friday, Toolmoz Friday
- Where the expected answer comes from
- 2100 is a century not divisible by 400, so it is not a leap year; 1 January 2100 is a Friday
- Allowed difference
- exact
Case 4
- Inputs
- Year 2000Week starts on mondayDates to mark (optional), one per line
- Expected, and what Toolmoz gave
- Days in the year expected 366, Toolmoz 366Leap year expected Yes, Toolmoz YesWeekday of 1 January expected Saturday, Toolmoz SaturdayISO weeks in the year expected 52, Toolmoz 52
- Where the expected answer comes from
- 2000 is divisible by 400, so it is a leap year; 1 January 2000 was a Saturday
- Allowed difference
- exact
What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.
See a worked example
Worked example
A fixed demonstration, separate from the values you enter above.
- Year
- 2026
- Week starts on
- Monday (ISO weeks)
- Dates to mark (optional), one per line
01-01 New Year’s Day 12-25 Christmas Day
Example result
| Month | Week | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|---|---|
| January | 1 | 1* | 2 | 3 | 4 | |||
| 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
| 3 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | |
| 4 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | |
| 5 | 26 | 27 | 28 | 29 | 30 | 31 |
Gregorian calendar (before 1582 it is the proleptic calendar). Week numbers are ISO 8601: week 1 contains the first Thursday, so early January days can belong to the previous year’s last week. Marked * (Jan 1: New Year’s Day; Dec 25: Christmas Day). No public holidays are built in, because they differ by country and region.