HeyPlanly › Blog › Planners & Habits

2027 Calendar Template in Google Sheets: Build Your Own Year Planner

October 2, 2026 · 7 min read · by HeyPlanly

A calendar is the one planner you can build entirely from formulas. Type a year in one cell, and the month grids, the week numbers and most public holidays can be calculated from it. Then one list of events fills the days. This walkthrough builds a 2027 calendar in Google Sheets (the same formulas work in Excel), and checks every formula against the real 2027 dates.

Short answer: 2027 starts on a Friday and has 365 days. The first cell of a Monday-start month grid is =DATE(2027,m,1)-(WEEKDAY(DATE(2027,m,1),2)-1); every other cell is the previous one plus 1. With Monday as the first day, May and August need six rows, February fits in four. Holidays like MLK Day (January 18) and Thanksgiving (November 25) come from an nth-weekday formula, not from typing.

What 2027 looks like

Before any formulas, here is the year the formulas have to reproduce. January 1 is a Friday and so is December 31. There are 261 weekdays, 52 Saturdays and 52 Sundays, and only one Friday the 13th, in August. The table shows the weekday each month starts on and how many grid rows it needs.

MonthStarts onDaysRows, week starts MondayRows, week starts Sunday
JanuaryFriday3156
FebruaryMonday2845
MarchMonday3155
AprilThursday3055
MaySaturday3166
JuneTuesday3055
JulyThursday3155
AugustSunday3165
SeptemberWednesday3055
OctoberFriday3156
NovemberMonday3055
DecemberWednesday3155

The row count is why hand-drawn calendar templates break: a five-row grid loses May 31 and August 30 to 31 when the week starts on Monday. Give every month six rows and the question disappears.

The month grid from one date

Put the year in a Settings cell, say Settings!B1. For each month you need two helper values: the first day of the month, and how many cells to step back to reach the start of that week.

First day of March:      =DATE(Settings!$B$1, 3, 1)
Cells before the 1st:    =WEEKDAY(DATE(Settings!$B$1, 3, 1), 2) - 1
First cell of the grid:  =DATE(Settings!$B$1, 3, 1) - (WEEKDAY(DATE(Settings!$B$1, 3, 1), 2) - 1)
Every next cell:         =previous cell + 1

WEEKDAY(date, 2) returns 1 for Monday through 7 for Sunday. March 1, 2027 is a Monday, so the offset is 0 and the grid starts on the 1st. January 1 is a Friday: the offset is 4, and the January grid starts on Monday, December 28, 2026. For a Sunday-start calendar use WEEKDAY(date, 1) - 1 instead; the January grid then starts on Sunday, December 27.

Fill 6 rows of 7 cells this way and format them to show the day number only. Two conditional formatting rules finish the grid: grey text where =MONTH(C6)<>3 (days of the neighbouring months), and a highlight where =C6=TODAY().

March 2027 month tab: Monday to Sunday grid with ISO week numbers 9 to 13 on the left, Team offsite on the 5th, today 10 March in amber with Car service and Book club, birthday Sam Carter on the 12th, St Patrick's Day in red on the 17th, Atlas milestone 1 due on the 19th, weekends shaded, 1 to 4 April greyed out
March 2027: starts on a Monday, five rows are used, the first days of April are greyed out.

Week numbers

For the column on the left, =ISOWEEKNUM(C6) on the first cell of each row is enough in Google Sheets and Excel 2013 or later. March 1, 2027 returns 9. Be ready for the first row of January: January 1 to 3 return 53, because those days belong to the last ISO week of 2026. Week 1 starts on Monday, January 4, and December 31 is in week 52.

Holidays by rule, not by typing

Fixed-date holidays are a plain DATE(year, 12, 25). The moving ones follow rules such as "third Monday of January", and a rule can be written as a formula:

nth Monday of a month (here: 3rd Monday of January, MLK Day):
=DATE(Y,1,1) + 7 - WEEKDAY(DATE(Y,1,1) - 1, 2) + 14

4th Thursday of November (Thanksgiving):
=DATE(Y,11,1) + 7 - WEEKDAY(DATE(Y,11,1) - 4, 2) + 21

Last Monday of May (Memorial Day):
=EOMONTH(DATE(Y,5,1),0) + 1 - WEEKDAY(EOMONTH(DATE(Y,5,1),0) - 7, 2)

The pattern: DATE(Y,M,1) + 7 - WEEKDAY(DATE(Y,M,1) - k, 2) is the first given weekday of the month, where k is 1 for Monday up to 7 for Sunday. Add 7 for the second, 14 for the third, 21 for the fourth. Replace Y with the year cell. Checked against 2027 and 2028:

US federal holidayRule20272028
Martin Luther King Jr. Day3rd Monday of JanuaryMon, Jan 18Mon, Jan 17
Presidents' Day3rd Monday of FebruaryMon, Feb 15Mon, Feb 21
Memorial DayLast Monday of MayMon, May 31Mon, May 29
JuneteenthJune 19Sat (observed Fri, Jun 18)Mon, Jun 19
Independence DayJuly 4Sun (observed Mon, Jul 5)Tue, Jul 4
Labor Day1st Monday of SeptemberMon, Sep 6Mon, Sep 4
Columbus Day2nd Monday of OctoberMon, Oct 11Mon, Oct 9
Veterans DayNovember 11Thu, Nov 11Sat (observed Fri, Nov 10)
Thanksgiving4th Thursday of NovemberThu, Nov 25Thu, Nov 23
Christmas DayDecember 25Sat (observed Fri, Dec 24)Mon, Dec 25

2027 is a year where the "observed" rule matters: Juneteenth, Independence Day and Christmas all fall on a weekend, and because January 1, 2028 is a Saturday, that holiday is observed on Friday, December 31, 2027. The rule is Saturday moves to Friday, Sunday moves to Monday:

=IF(WEEKDAY(D2,2)=6, D2-1, IF(WEEKDAY(D2,2)=7, D2+1, ""))

Easter is the exception. There is no short formula for it, so type Easter Sunday once per year (March 28 in 2027, April 16 in 2028) and derive the rest: Good Friday is that cell minus 2 (March 26, 2027), Easter Monday is plus 1 (March 29).

To show a holiday on the grid, look the cell's date up in the holiday list: =IFERROR(INDEX(Holidays!$C$2:$C$80, MATCH(C6, Holidays!$B$2:$B$80, 0)), ""), with dates in column B and names in column C.

One events list feeds every view

The mistake to avoid is typing events into the month grid. Keep them in one list (date, title, category) and let each view look them up. The list can then also calculate things a wall calendar cannot:

Days until:       =B6 - TODAY()
Flag:             =IF(B6=TODAY(), "Today", IF(B6<TODAY(), "Past",
                    IF(B6-TODAY()<=7, "This week", "Upcoming")))
Repeats yearly:   =DATE(Settings!$B$1, MONTH(B6), DAY(B6))
Events list on 10 March 2027: Team offsite 5 March, minus 5 days, Past; Car service and Book club 10 March, 0 days, Today; Mom and Dad anniversary dated 14 March 1995, repeat yes, Sunday, 4 days, This week; Atlas milestone 1 due 19 March, 9 days, Upcoming; Easter trip to Lisbon 2 April, 23 days, Upcoming
The sample list as it looks on Wednesday, 10 March 2027. Yellow cells are typed, the three columns on the right are formulas.

The third formula is what makes anniversaries work. In the sample an anniversary is entered with its original date, 14 March 1995, and marked as repeating. The formula moves it into the calendar year, so it shows up on Sunday, 14 March 2027, 4 days after the 10th, and will show up again in 2028 without retyping. Birthdays use the same trick, and the age is one subtraction: =YEAR(next birthday) - YEAR(date of birth). Someone born on 12 March 1988 turns 39 on 12 March 2027.

The sample file has 40 events across the year: 17 personal, 9 work, 7 travel and 7 deadlines, five of them in March. With the list in place, the year view becomes a set of counts and lookups rather than something you maintain:

Year at a glance on 10 March 2027: 296 days left in 2027, next holiday St Patrick's Day in 7 days, 5 events this month, 2 birthdays this month, twelve mini calendars with today in amber and holidays in red, next 6 events with category and days until, upcoming birthdays turning 39, 64 and 32, next holidays
All of this is read from the Events, Birthdays and Holidays lists. On 10 March, 296 days are left: December 31 minus March 10.

If money dates are what you mainly want on a calendar, the bill calendar walkthrough uses the same lookup idea for due dates, and the annual budget for 2027 covers the numbers side of planning the year.

Skip the build

The grid, the holiday rules and the lookups above have to be repeated for twelve months, and most of the effort goes into edge cases like six-row months and observed holidays. The finished version is below.

2027 Calendar and Yearly Planner spreadsheet, Dashboard tab: twelve mini calendars, days left in the year, next holiday, next events and upcoming birthdays

2027 Calendar and Yearly Planner for Google Sheets and Excel

24 tabs built from one year cell: 12 month grids with week numbers, a year at a glance, Weekly, Goals, Countdown, a Phone tab and a one-page printable. Events (300 rows) and birthdays (60) land on every view. US federal, UK, Canada and Australia holidays by formula, plus 20 of your own. Type 2028 next year and it all moves.

Get the 2027 Calendar on Etsy →

See it work

FAQ

What day of the week does 2027 start on?

January 1, 2027 is a Friday. The year has 365 days and ends on Friday, December 31. It has 261 weekdays (Monday to Friday), 52 Saturdays and 52 Sundays. In ISO week numbering, January 1 to 3 still belong to week 53 of 2026, and week 1 of 2027 starts on Monday, January 4.

How do I make a calendar in Google Sheets with formulas?

Put the year in one cell, then build each month from its first day. The first cell of a Monday-start grid is =DATE(year,month,1)-(WEEKDAY(DATE(year,month,1),2)-1), and every next cell is the previous one plus 1. Six rows of seven cells cover any month. Grey out the days of other months with a conditional formatting rule on MONTH.

How many rows does a month need in a calendar grid?

Five for most months, six for some, four for a February that starts on the first day of the week. In 2027 with Monday as the first day, May and August need six rows and February fits in four. With Sunday as the first day, January, May and October need six. A fixed six-row grid avoids the problem.

How do I calculate holidays like Thanksgiving or MLK Day in a spreadsheet?

Use a formula for the nth weekday of a month. The third Monday of January is =DATE(year,1,1)+7-WEEKDAY(DATE(year,1,1)-1,2)+14, which gives January 18 in 2027. The fourth Thursday of November is =DATE(year,11,1)+7-WEEKDAY(DATE(year,11,1)-4,2)+21, which gives November 25, 2027. Change the year and the dates move.

Can I reuse a 2027 spreadsheet calendar in 2028?

Yes, if every date is built from one year cell. Type 2028 and the grids, week numbers and rule-based holidays recalculate: MLK Day moves from January 18 to January 17, Thanksgiving from November 25 to November 23. Easter is the one date that has to be typed: March 28 in 2027, April 16 in 2028.

More from the blog