Download the template
The template is a normal spreadsheet file. It works in Google Sheets™, Microsoft Excel, Apple Numbers and LibreOffice. Pick a format:
Free, no sign-up, no email needed. The four sample households are made up; delete them before you start.
What’s inside
A Christmas card list does three jobs: it remembers addresses, it tracks this year’s cards, and it makes printing the envelopes easy. The template has one tab for each job, plus instructions.
| Tab | What it does |
|---|---|
| How to use | Eight short steps, so the file still makes sense when you open it again next December. |
| Card list | One row per household with address columns, a group, Send / Sent / Received columns for 2026, notes, the date you last checked the address, and a ready-made Envelope address. Room for 300 households, with filters and a frozen header. |
| Summary | Counts that update as you tick boxes: households on the list, cards to send, sent so far, still to send, cards received, cards received from people not on this year’s list, and addresses abroad. |
| Return address | Your own address in one row, joined into return-label text. |
Here is what the Card list looks like with the sample rows (some columns hidden to fit):
| Envelope name | Street | City | State | ZIP | Send 2026 | Sent 2026 | Envelope address |
|---|---|---|---|---|---|---|---|
| The Okafor Family | 77 Birch St | Dayton | OH | 45402 | ☑ | ☐ | The Okafor Family 77 Birch St Dayton, OH 45402 |
| Rosa Delgado & Sam Lee | 418 Alder Ln | Eugene | OR | 97401 | ☑ | ☐ | Rosa Delgado & Sam Lee 418 Alder Ln Apt 2 Eugene, OR 97401 |
| Grandma June | 12 Elm Ct | Boston | MA | 02109 | ☑ | ☐ | Grandma June 12 Elm Ct Boston, MA 02109 |
| Claire & Marc Martin | 14 Rue Victor Hugo | 69002 Lyon | ☐ | ☐ | Claire & Marc Martin 14 Rue Victor Hugo 69002 Lyon FRANCE |
We built the file, then opened it in a spreadsheet app and recalculated it to check that the Envelope address and Summary formulas give the results shown above.
Open it in Google Sheets
Google Sheets opens .xlsx files directly. There are two ways in.
Import into a new spreadsheet
- Download christmas-card-list-template.xlsx above.
- Go to sheets.google.com and start a Blank spreadsheet.
- Choose File → Import → Upload and pick the file.
- Under Import location, choose Replace spreadsheet and press Import data.
- Rename the spreadsheet, for example “Christmas cards”.
Or upload it to Drive
Drag the file into Google Drive, right-click it and choose Open with → Google Sheets. If Drive opens it in Office-compatibility mode (you’ll see a small .XLSX badge next to the name), choose File → Save as Google Sheets so every feature is available.
Turn on the checkboxes
Excel files have no Google-style checkboxes, so the Send, Sent and Received columns arrive as TRUE / FALSE drop-downs. To turn them into tick boxes, select J2:L301 on the Card list tab and choose Insert → Checkbox. Existing TRUE values become ticked boxes, and the Summary tab keeps counting them.
Use it in Excel
Double-click the .xlsx file. Everything works as downloaded: the drop-downs, the frozen header, the filter buttons and the light-green highlight on rows you’ve marked as sent. The Envelope address column uses TEXTJOIN, which needs Excel 2019, Excel 2021, Excel for Microsoft 365 or Excel for the web. Older versions show #NAME? in that column; the rest of the template still works. To see the line breaks in the Envelope address cells, keep Wrap Text switched on for that column (it is on in the file).
Fill in the addresses fast
Typing addresses is the slow part, and you only want to do it once. Some ways to get them into the sheet faster:
- Last year’s envelopes and return addresses. The cards you received are the most current addresses you have. Keep them in a pile until the list is updated.
- Your contacts. In Google Contacts, select the people you send cards to, choose Export and pick Google CSV. Open the file in Sheets and copy the address columns across. Exported addresses are often in one field; our guide to splitting an address into columns in Google Sheets shows how to break them into Street, City, State and ZIP.
- Ask for them. A short Google Form (“What’s your mailing address for holiday cards?”) sent to family puts every reply in a spreadsheet you can copy from. People move, and asking once a year is normal.
- Your wedding or party list. If you already have a guest list with addresses, paste it in. Match each column first.
When you paste addresses from elsewhere, use Edit → Paste special → Values only (or Ctrl+Shift+V, ⌘+Shift+V on a Mac), so the template’s formatting and text-formatted ZIP column stay intact.
Column by column
| Column | What to put in it |
|---|---|
| A · Envelope name | Exactly what goes on the first line of the envelope: “The Okafor Family”, “Rosa Delgado & Sam Lee”. The summary counts a household when this cell isn’t empty. |
| B · Card greeting | How you start the card inside: “Dear Ada, Chidi & kids”. Separate from the envelope name, so the envelope can be formal and the card friendly. |
| C · Street | House number and street. |
| D · Apt / Unit | Apartment, suite or unit. It’s added to the end of the street line, which is the usual US placement. |
| E · City | City or town. For addresses abroad, the whole city line (see below). |
| F · State | Two-letter state code for US addresses. |
| G · ZIP | Formatted as text so leading zeros stay. ZIP+4 such as 45402-1234 works too. |
| H · Country | Leave empty for addresses in your own country. Fill it in for cards going abroad; it prints in capitals as the last line. |
| I · Group | A drop-down: Family, Friends, Work, Neighbors, Other. Use the filter to print one group at a time, or edit the list under Data → Data validation. |
| J · Send 2026 | Tick everyone getting a card this year. People stay on the list in years you skip them. |
| K · Sent 2026 | Tick as you post each card. The whole row turns light green. |
| L · Received 2026 | Tick when a card arrives from them. |
| M · Notes | New baby, pet’s name, “sends a letter every year”, “moved in June”. |
| N · Address checked | The date you last confirmed the address. Sort by it to see which addresses might be out of date. |
| O · Envelope address | A formula. Don’t type here: it joins A, C, D, E, F, G and H into the finished address, one envelope line per line in the cell, and stays blank for empty rows. |
The Envelope address formula in row 2, if you want to reuse it in your own sheet:
=IF(A2="", "", TEXTJOIN(CHAR(10), TRUE, A2, TRIM(C2&" "&D2), E2&IF(F2="", "", ", "&F2)&IF(G2="", "", " "&G2), UPPER(H2)))
CHAR(10) is a line break and TRUE tells TEXTJOIN to skip empty parts, so a missing apartment or country leaves no blank line. UPPER writes the country in capitals.
Writing envelope names
There is no single right way, but a few simple conventions keep envelopes clear and friendly:
- A family: “The Okafor Family” or “The Okafors”. Plural surnames take no apostrophe: the Joneses, not the Jones’.
- A couple with the same last name: “Ada and Chidi Okafor”.
- A couple with different last names: both full names, “Rosa Delgado and Sam Lee”. Many people put the person you know best first.
- A single person: their full name, or a family name like “Grandma June” if the card is hand-delivered or the carrier knows them.
- Titles: “Dr.”, “Rev.” and the like are a nice touch for formal or work cards. Keep the Card greeting column informal.
Have separate first and last name columns from another list? Join them with a formula and paste the results into Envelope name as values. For two partners with a shared last name: =A2&" and "&B2&" "&C2 where A and B are first names and C is the last name.
Cards going abroad
Addresses aren’t written the same way everywhere. Postcodes come before the city in France and Germany, after it in the UK, and some countries have no postcode at all. Rather than force every address into US columns, the template does this:
- Put the street in Street as the recipient’s country writes it.
- Put the whole city line in City, in that country’s order, for example
69002 LyonorLondon SW1A 1AA. - Leave State and ZIP empty.
- Put the country in Country. The Envelope address writes it in capitals on the last line.
Writing the country in capitals on the last line follows the Universal Postal Union’s guidance for international mail, which national postal services pass on to their customers. International cards also take longer to arrive and cost more to post than domestic ones, so check your postal service’s current prices and mailing dates before you buy stamps.
Track sent and received
The three tick columns answer the questions that come up every December:
- Who still needs a card? Filter Send 2026 to TRUE and Sent 2026 to FALSE. The Summary tab shows how many are left.
- Who did we forget? The Summary line “Received, but not on this year’s send list” counts people who sent you a card that you didn’t plan to send one to. Filter Received 2026 to TRUE and Send 2026 to FALSE to see who they are, while there’s still time to reply.
- Who should we update? When a card arrives, compare its return address with the row and update the date in Address checked.
In Google Sheets, a filter view (Data → Filter views) lets each person in a shared household filter the list without changing what the others see.
Print labels or envelopes
Once the list is ready, there are three ways to get it onto envelopes.
1. Copy the Envelope address
For a handful of cards, copy an Envelope address cell and paste it into whatever you print envelopes from. For neat handwriting, the column is also a ready-made checklist to copy from.
2. A free Google Docs label table
Create a table in Google Docs sized like your label sheet, then paste the Envelope address cells into it. Our guide to printing Christmas card address labels from Google Sheets walks through it step by step. It shows how to keep only the ticked rows with FILTER, lay them out three across with WRAPROWS, and print your return labels. For the common 30-per-sheet size, see Avery 5160 labels from Google Sheets.
3. An add-on that reads the columns
We make LabelRows, a free Google Sheets add-on that turns rows into a Google Doc of labels. You write the label using your column names, choose one of the five free sizes (including Avery-compatible 5160 and 5163, or L7160 and L7163 on A4) and it lays out the Doc. You can print only the rows ticked in a column, such as Send 2026, and empty address lines are skipped. It has a plain-paper test page and a nudge setting for lining up. The free version makes up to 60 labels per Doc; for a longer list, make a second Doc. It’s one option among several; the Docs method above costs nothing either.
Next year in five minutes
The point of keeping the list in a spreadsheet is that next year starts where this year ended:
- Make a copy of the file (File → Make a copy) if you want to keep this year’s version untouched.
- Rename the three tick columns from 2026 to 2027, then clear them. Or insert three new columns for 2027 next to them and keep the old ones as a record.
- Sort by Received: people who sent you a card are likely on next year’s list.
- Sort by Address checked: the oldest dates are the addresses to confirm.
- Update the Summary tab formulas if you added new columns. Each one names its column, for example
'Card list'!J2:J301.
Want a reminder? You can leave your email below and we’ll let you know when the next version of this template is ready.
Make the list your own
The template is a starting point. Add columns for whatever you want to remember, to the right of column O so the formulas don’t move:
- Card type. Photo card, letter, or regular card, if you send different cards to different people.
- Gift. For people who get a small gift with the card, so you don’t give the same thing twice.
- Kids’ names. Handy when you write the card and can’t remember how a name is spelled.
- Email. For people you send an e-card or a holiday email to instead.
- Delivered by hand. Neighbors and colleagues whose cards don’t need a stamp. Tick it and filter them out before printing labels.
To add a choice to the Group drop-down, select I2:I301 and open Data → Data validation in Google Sheets (or Data → Data Validation in Excel), then add the new option to the list. If you want more groups than fit, use the Notes column instead.
A simple card-season plan
A list makes the season calmer if you work through it in order. One way to do it:
- Update the list. Add new people, remove anyone you no longer send to, and fix addresses you know have changed.
- Tick Send. Go down the list and tick everyone getting a card. The Summary tab then tells you how many cards and stamps to buy.
- Count international cards. “Addresses going abroad” on the Summary tab shows how many need international postage. Post those first, because they take longer.
- Print or write the envelopes from the Envelope address column or with labels.
- Write the cards, using the Card greeting and Notes columns.
- Tick Sent as each card goes in the mailbox. Rows turn green, so you can see at a glance who’s left.
- Tick Received as cards arrive, and update any new return addresses.
For mailing deadlines, check your postal service’s holiday shipping page each year. For example, USPS publishes recommended send-by dates for holiday mail on its website. The dates change from year to year, so we don’t list them here.
Keep the list private
A card list is a list of people’s home addresses, so treat it with care:
- Share the spreadsheet only with the people who help with the cards, using Share and their email addresses, not “Anyone with the link”.
- If you print the list to work from, shred it afterwards.
- Remove people who ask not to be on it, and old addresses once you know someone has moved.
The template contains no scripts or links to outside services. It is just cells and formulas, and your list stays in your own Google Drive or computer.
Troubleshooting
- ZIP codes lost their leading zero
- Sheets and Excel read 02109 as the number 2109. The .xlsx file’s ZIP column is formatted as text, but codes pasted with normal paste or imported from the .csv can still lose the zero. Select the column, choose Format → Number → Plain text and retype them, or rebuild them in a spare column with
=TEXT(G2, "00000")and paste the results back as values. - The Envelope address is all on one line
- The line breaks are there but wrapping is off. Select column O and choose Format → Wrapping → Wrap in Google Sheets, or Wrap Text on Excel’s Home tab.
- Envelope address shows #NAME?
- Your version of Excel is older than 2019 and has no
TEXTJOIN. Use the file in Google Sheets or a newer Excel, or join the parts with&andCHAR(10)instead. - The Summary says 0 cards sent
- The counts look for the value TRUE. If you typed “yes” or “x” into the tick columns, they aren’t counted. Convert the columns to checkboxes as described in Open it in Google Sheets.
- The Envelope address column is empty in the .csv
- That’s expected: CSV files hold values, not formulas, so the .csv has no Envelope address column. Use the .xlsx, or copy the formula above into column O.
- More than 300 households
- Copy row 301 down as far as you need, then widen the ranges in the Summary formulas (change 301 to your last row). Or turn the ranges into whole columns, for example
J2:Jin Google Sheets.
Frequently asked questions
Is there a free Christmas card list template for Google Sheets?
Yes. Download the free .xlsx file on this page and open it in Google Sheets with File, Import, Upload. It has a card list with sent and received columns, a summary tab, a return address tab and an envelope address column that builds itself. No sign-up is needed.
How do I open the template in Google Sheets?
Download the .xlsx file, open Google Sheets, choose File, Import, Upload, pick the file and choose Replace spreadsheet or Insert new sheets. You can also upload it to Google Drive and open it with Google Sheets.
How do I turn the Send, Sent and Received columns into checkboxes?
Select J2:L301 on the Card list tab and choose Insert, Checkbox. The cells already hold TRUE or FALSE, so existing ticks are kept and the summary counts keep working.
Why did my ZIP codes lose their leading zero?
Google Sheets reads 02109 as the number 2109. The ZIP column in the .xlsx file is formatted as text, so typed codes keep the zero. If you imported the .csv or pasted numbers, format the column as Plain text and retype the codes, or use =TEXT(G2, "00000") in a helper column.
Can I print address labels or envelopes from this list?
Yes. The Envelope address column joins each address into one cell with a line per row of the envelope. Paste those cells into a Google Docs table sized like your labels, or use a label add-on such as LabelRows, which reads the columns directly.
How do I reuse the list next year?
Rename the Send, Sent and Received columns to the new year and clear the ticks, or insert three new columns for the new year if you want to keep last year's record. Sort by Received to see who sent you a card last year.
Is the template really free?
Yes. The download is free, with no sign-up and no email needed. If you want, you can leave your email to hear when we publish next year's version and new free templates, but that is optional.
Optional
Get next year’s version
Leave your email and we’ll tell you when the next version of this template is ready and when we publish new free Google Sheets templates. That’s all we’ll use it for. The download above doesn’t need it.
Related
- How to print Christmas card address labels from Google Sheets
- How to print address labels from Google Sheets
- Print Avery 5160 labels from Google Sheets
- How to split an address into columns in Google Sheets
- All guides
Disclosure: we make LabelRows, the Google Sheets add-on mentioned on this page. The template itself is free and works without it, and we describe the free methods as fairly as we can.
Google Sheets, Google Docs, Google Drive, Google Forms and Google Contacts are trademarks of Google LLC. Microsoft Excel is a trademark of the Microsoft group of companies. Apple Numbers is a trademark of Apple Inc. Avery is a registered trademark of Avery Products Corporation. Cellbrook is not affiliated with or endorsed by Google, Microsoft, Apple or Avery.