piapia123
en

Calendar Grid

Convert

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

The output is a monospaced text grid rather than a drawn table, because it has to survive being pasted: into a ticket, a weekly report, a code comment, a scheduling table in a README. Every one of those keeps its alignment. Enter a year and month (2026-10, 2026/10 and other common spellings all parse) or leave it blank for the current month, and print several months in a row, rolling over the year as needed. Two options cover the habits that differ: which day the week starts on (Monday in Chinese and European usage, Sunday in North America) and whether to show ISO week numbers. ⚠️ Week numbers follow ISO 8601: weeks start on Monday and the week containing January 4 is week 1. So January 1 can belong to week 52 or 53 of the previous year, and December 31 can belong to week 1 of the next one. That differs from counting seven days from New Year, which drifts by a week at both ends of the year and is the usual reason a schedule fails to line up with another system. All arithmetic runs on UTC dates, independent of your timezone: a calendar is a pure date problem, and using local time would make the same October 2026 start on different weekdays in different timezones.

Features

  • A monospaced text grid that pastes into tickets, reports and code comments
  • Parses 2026-10, 2026/10, 2026-10-05 and a written-out year and month; blank means the current month
  • Weeks can start on Monday (Chinese and European usage) or Sunday (North America)
  • Optional ISO 8601 week numbers, computed from the week containing January 4
  • One to twelve months at once, rolling over into the next year
  • Leap years judged as divisible by 4 and not by 100, or divisible by 400 (1900 no, 2000 yes)
  • Columns padded by display width, so a double-width CJK weekday label still lines up with the digits
  • The line naming today sits below the grid rather than inside it, which would break the alignment
  • Everything runs in your browser; no network requests

How to use

  1. Enter a year and month, or leave it blank for the current one
  2. Switch the week start and the week numbers as needed
  3. Ask for several months if you are planning
  4. Copy the grid and paste it where you need it

FAQ

Why is this row in week 52 or 53 of last year?
Because ISO 8601 does not cut weeks at the year boundary: the week containing January 4 is week 1, so the days between January 1 and the first Monday belong to the last week of the previous year, and December 31 can belong to week 1 of the next. That is the standard, and schedulers, weekly reports and tools such as Git all use it. Counting seven days from New Year drifts by a week at both ends, which is why two systems built that way will not agree.
Should the week start on Sunday or Monday?
Depends who you are aligning with: Chinese and European usage starts on Monday, North America on Sunday, and ISO 8601 mandates Monday. The tool makes it a choice rather than deciding for you, but note that week numbering always follows ISO, so with a Sunday start a row can span two ISO weeks and shows the number of the week its Thursday falls in.
Why is today not highlighted in the grid?
Because adding a marker such as an asterisk would make that cell three columns wide and shift the whole row. This tool exists to be pasted somewhere and stay aligned, so the date and ISO week number sit on a line below the grid instead. To see the current month, leave the input blank.
Can it print a very long span?
Twelve months at a time, which covers a project cycle. For longer spans, generate in batches. Printing a decade at once was left out deliberately: it is not readable, and it would make the result enormous. For the number of days between two dates, or when a holiday falls, the date calculator is the better tool.

Related tools