Formula Fixer

2027 Calendar in Excel or Google Sheets: Formulas for Months, Holidays and Week Numbers

Updated 2026-11-03

Every year someone has to make next year's calendar for the team, the rota or the fridge. Instead of typing 365 dates, you can build a calendar with one formula per month that recalculates when you change the year. This guide builds it step by step, then adds the 2027 holiday dates and week numbers. Examples work in Microsoft 365 or Excel 2021 and in Google Sheets; there is a version for older Excel too.

2027 at a glance

Step 1: Set up the inputs

Put the year in B1 (2027) and a month number in B2 (1 for January). In A3, show the month name as a title:

=TEXT(DATE($B$1,$B$2,1),"mmmm yyyy")

Type the day headings in A4:G4: Sun, Mon, Tue, Wed, Thu, Fri, Sat. (For a Monday start, see Step 3.)

Step 2: One formula for the whole month

In A5, enter:

=LET(first, DATE($B$1,$B$2,1), start, first-WEEKDAY(first)+1, d, SEQUENCE(6,7,start), IF(MONTH(d)=$B$2, d, ""))

It spills into a 6-row by 7-column grid (A5:G10). How it works:

Select A5:G10 and apply the custom number format d so only the day number shows. Six rows are needed because some months, such as a 31-day month starting on a Saturday, touch six weeks.

In Google Sheets, wrap the formula in ARRAYFORMULA( ) so the IF works on every cell of the grid.

Step 3: Start weeks on Monday

Change the start date so it uses Monday-based weekday numbers, and retype the headings as Mon to Sun:

=LET(first, DATE($B$1,$B$2,1), start, first-WEEKDAY(first,2)+1, d, SEQUENCE(6,7,start), IF(MONTH(d)=$B$2, d, ""))

WEEKDAY(date,2) returns 1 for Monday to 7 for Sunday. February 2027 starts on a Monday, so with this version the 1st sits in the top-left cell.

Step 4: Make all 12 months

Copy the block (title, headings and grid) eleven times, for example in three rows of four months. Give each block its own month cell instead of B2, holding 1 to 12, and point that block's formula at it. Change B1 to 2028 next year and the whole calendar updates.

Older Excel without SEQUENCE or LET

In A5, enter the start date:

=DATE($B$1,$B$2,1)-WEEKDAY(DATE($B$1,$B$2,1))+1

In B5, enter =A5+1 and fill right to G5. In A6, enter =G5+1, fill B6:G6 with =A6+1 and so on, then copy row 6 down to row 10. To hide other months' days, add conditional formatting with the formula =MONTH(A5)<>$B$2 and set the font colour to white or light grey.

Step 5: Highlight weekends, holidays and today

Select the grid, then Home > Conditional Formatting > New Rule > Use a formula (in Sheets: Format > Conditional formatting > Custom formula). Write each rule for the top-left cell, A5:

The A5<>"" test matters: without it, COUNTIF treats the empty cells of the grid as a match for any empty rows in your holiday list. The weekend and today rules return an error or FALSE for blank cells, so those stay unformatted on their own.

Step 6: US federal holidays 2027 with formulas

Most US holidays are "the nth weekday of a month", which one pattern handles. With the year in B1:

nth weekday:  =DATE(B1,m,1)+MOD(w-WEEKDAY(DATE(B1,m,1)),7)+7*(n-1)
last weekday: =EOMONTH(DATE(B1,m,1),0)-MOD(WEEKDAY(EOMONTH(DATE(B1,m,1),0))-w,7)

Here m is the month, n is 1 for the first, 2 for the second and so on, and w is the weekday number (1 Sunday, 2 Monday, ... 5 Thursday, 7 Saturday).

Holiday2027 dateFormula (year in B1)
New Year's DayFri 1 Jan=DATE(B1,1,1)
Martin Luther King Jr. DayMon 18 Jan3rd Monday: =DATE(B1,1,1)+MOD(2-WEEKDAY(DATE(B1,1,1)),7)+14
Washington's Birthday (Presidents' Day)Mon 15 Feb3rd Monday of February
Memorial DayMon 31 MayLast Monday: =EOMONTH(DATE(B1,5,1),0)-MOD(WEEKDAY(EOMONTH(DATE(B1,5,1),0))-2,7)
JuneteenthFri 18 Jun (observed; 19 Jun is a Saturday)Observed-date formula below
Independence DayMon 5 Jul (observed; 4 Jul is a Sunday)Observed-date formula below
Labor DayMon 6 Sep1st Monday: =DATE(B1,9,1)+MOD(2-WEEKDAY(DATE(B1,9,1)),7)
Columbus DayMon 11 Oct2nd Monday of October
Veterans DayThu 11 Nov=DATE(B1,11,11)
ThanksgivingThu 25 Nov4th Thursday: =DATE(B1,11,1)+MOD(5-WEEKDAY(DATE(B1,11,1)),7)+21
Christmas DayFri 24 Dec (observed; 25 Dec is a Saturday)Observed-date formula below
New Year's Day 2028Fri 31 Dec 2027 (observed; 1 Jan 2028 is a Saturday)Observed-date formula below

Fixed-date holidays that land on a weekend are observed on the nearest weekday: Saturday moves to Friday and Sunday to Monday. With the actual date in A2:

=IF(WEEKDAY(A2)=7, A2-1, IF(WEEKDAY(A2)=1, A2+1, A2))

Note the last row: because 1 January 2028 is a Saturday, the New Year holiday is observed on Friday 31 December 2027, so it belongs in your 2027 list.

UK bank holidays 2027 (England and Wales)

Easter moves each year, so it is simplest to type these dates rather than calculate them. Scotland and Northern Ireland have some different bank holidays.

Bank holiday (England and Wales)2027 date
New Year's DayFri 1 Jan
Good FridayFri 26 Mar
Easter MondayMon 29 Mar
Early May bank holidayMon 3 May
Spring bank holidayMon 31 May
Summer bank holidayMon 30 Aug
Christmas Day (substitute day)Mon 27 Dec
Boxing Day (substitute day)Tue 28 Dec

Step 7: Week numbers

=ISOWEEKNUM(A2)
=WEEKNUM(A2)

ISOWEEKNUM follows the international standard used in most of Europe: weeks start on Monday and week 1 contains the first Thursday of the year. WEEKNUM, by default, starts weeks on Sunday and counts the week containing 1 January as week 1. For Friday 1 January 2027, ISOWEEKNUM returns 53 and WEEKNUM returns 1, so pick one and say which in the heading.

Useful checks

For counting working days and deadlines around these holidays, see NETWORKDAYS and WORKDAY and our guide to days between dates. To print, set Page Layout to fit all columns on one page and use landscape for a four-across layout.

← More guides