Skip to content
CalcTide logo
Time & Date

Monthly Calendar Generator

February 2024 has 29 days, starts on Thursday, and occupies five Sunday-start calendar rows. This monthly calendar generator creates a Gregorian month grid for a whole-number year from 1 through 9999. Choose Sunday or Monday as the first column, then print or save the resulting seven-column layout. The code uses UTC calendar dates, so weekday placement does not change with the viewer's time zone. Blank cells are padding outside the selected month, not dates from the adjacent month. The output does not include holidays, locale-specific observances, appointments, week numbers, or historical calendar-system changes.

Time & DateBy

Quick answer

Pick any month and year and the grid updates right away.

Week starts on

July 2026

SunMonTueWedThuFriSat
1234
567891011
12131415161718
19202122232425
262728293031

What this tells you

  • Pick any month and year and the grid updates right away.
  • Choose whether the week starts on Sunday or Monday to match your region.
  • Each month is laid out in rows of seven days, padded so every row is full.
  • February shows 29 days in a leap year and 28 days otherwise.
  • Years divisible by 100 are not leap years unless they are also divisible by 400.
  • Changing week start reorders columns and padding but does not change a date's actual weekday.
  • The generator uses UTC and Gregorian calendar rules for every supported year.
  • A month can occupy four, five, or six rows depending on length and starting weekday.
  • Zero values in the internal grid represent blank padding cells.

How to Use

  1. 1Choose a month from January through December.
  2. 2Enter a whole-number year from 1 through 9999.
  3. 3Choose Sunday or Monday as the first weekday column.
  4. 4Check the month name, number of days, first weekday, and date placement.
  5. 5Read blank cells as alignment padding outside the month.
  6. 6Use the print control and review the browser preview before printing or saving as PDF.
  7. 7Add holidays, deadlines, or events separately because the generator does not know a location or schedule.

How It Works

Formula

grid = blank pads + days 1..N, laid out in rows of 7 from the first weekday

The generator uses day 0 of the following month to find the selected month's length, then reads the UTC weekday of day 1. Leading blanks equal (first weekday - week start + 7) modulo 7. It appends days 1 through N and adds trailing zeros until the cell count is divisible by seven. Splitting those cells into groups of seven creates the rows. Gregorian leap rules are supplied by UTC date arithmetic.

Calculation note: values are processed in the order shown above, using the current input units.

Worked Examples

Build a December 2025 calendar

MonthDecember
Year2025
Week StartSunday
Result31 days, starting on a Monday, laid out across 5 weekly rows

December 2025 has 31 days and the first falls on a Monday. With a Sunday start, the first row begins with one blank cell, then December 1 sits in the Monday column.

Build a February 2024 calendar

MonthFebruary
Year2024
Week StartSunday
Result29 days, starting on a Thursday

2024 is a leap year, so February shows 29 days. February 1, 2024 falls on a Thursday, so the first three days sit at the end of the opening row.

February 1900 is not a leap month

MonthFebruary
Year1900
Week StartMonday
Result28 days, starting on Thursday, across 5 rows

1900 is divisible by 100 but not 400, so February has 28 days. Monday-start padding places day 1 under Thursday.

February 2000 is a leap month

MonthFebruary
Year2000
Week StartMonday
Result29 days, starting on Tuesday

2000 is divisible by 400, so February has 29 days. In the Monday-start grid, one blank cell appears before Tuesday, February 1.

Six-row month

MonthAugust
Year2020
Week StartSunday
Result31 days, starting Saturday, across 6 rows

One leading row position plus 31 dates requires 37 cells, which pads to 42 cells or six rows.

Days in Each Month

How many days each month has, including February in leap years.

MonthDays
January31
February28 (29 in a leap year)
March31
April30
May31
June30
July31
August31
September30
October31
November30
December31

A leap year happens every 4 years, except for century years that are not divisible by 400. So 2000 was a leap year but 1900 was not.

How week start changes the layout

Sunday-start columns run Sunday through Saturday. Monday-start columns run Monday through Sunday. The selected convention changes the position of blank padding, but August 1, 2020 remains a Saturday in either layout.

Four rows are possible only when a 28-day February starts on the selected first weekday. Most months use five rows. A 30- or 31-day month that begins late in the week can require six.

UTC keeps date-only calculations stable across locations. This is useful for a generic printable grid, but it also means the tool does not model local timestamps, historical adoption of the Gregorian calendar, or region-specific week-number conventions.

Common mistakes

  • Forgetting that February has 29 days in a leap year. The generator handles this for you based on the year you pick.
  • Assuming every month starts on the same weekday. The starting weekday shifts each month, which is why the blank cells move.
  • Mixing up Sunday-start and Monday-start layouts. Set the week start to match your region so the columns line up the way you expect.
  • Treating blank padding cells as dates from the previous or next month
  • Assuming every century year is a leap year when 1900 was not and 2000 was
  • Expecting holidays or observances without selecting a country or region
  • Using the grid as a legal or business-day schedule without adding closures and deadlines

Embed this calculator on your site

Drop this single line where you want the calculator to appear. It is responsive, mobile-friendly, resizes automatically, and is free to use with attribution.

<script src="https://calctide.com/embed.js" data-tool="monthly-calendar-generator" async></script>

Preview the embed at /embed/monthly-calendar-generator/.

Frequently Asked Questions

Pick the month and enter the year, then the grid updates to show that month. You can build a calendar for any month in the past or future, and the days line up under the correct weekdays.
Yes. Use the print button to open your browser's print dialog, where you can print the calendar on paper or save it as a PDF. The grid is laid out to print cleanly.
Yes. Set the week start to Monday and the columns shift so Monday is first and Sunday is last. Sunday start is the default, which is common in the United States.
Yes. February shows 29 days in a leap year and 28 days in a normal year. Leap years occur every 4 years, except for century years that are not divisible by 400.
Most months fit in 5 weekly rows, but a 31-day month that starts late in the week can span 6 rows. February in a normal year that starts on the first weekday can fit in 4 rows.
Blank cells are pad days that fall outside the month. They sit before the first day and after the last day so each row stays a full seven columns and the dates line up under the right weekdays.
It estimates monthly calendar generator outputs using the visible inputs and formula assumptions on this page.

Explore More in Time & Date