FREE DOWNLOAD · NO EMAIL REQUIRED
Free Email Marketing Calendar Template (Excel & Google Sheets)
THE SHORT ANSWERThis free email marketing calendar template works in Excel and Google Sheets and ships with a filled-in 30-day example so you are not starting from a blank grid. Each row captures goal, audience, offer, send date, channel, owner, status, approval date, revenue target and result — the ten fields a campaign plan needs to survive contact with a real month.
Six working tabs, configured dropdowns, 310 formulas, and a filled January example—so the first useful thing you see is not an empty grid.
Download
⬇ Workbook for Google Sheets — upload to Drive and open with Google Sheets ⬇ Excel version (.xlsx) — works in Excel, Numbers and LibreOffice ⬇ CSV — for importing into a project tool
Free, no email required.
What's inside
The workbook has six tabs, and they are meant to be used in this order.
1. Start here. A one-page explanation of the fields and the planning sequence, so a new team member can use the template without a training session.
2. Campaign calendar. The working grid. Blank rows with dropdown menus already configured for channel, campaign type, lifecycle stage and status, so the data stays consistent enough to filter and sort.
3. 30-day example. A complete, filled-in January for a DTC coffee brand — ten sends against a $48,000 goal, with actual results in the results column. This is the tab most people copy and adapt.
4. Field definitions. What each column means and what belongs in it. The reference that stops "status" meaning four different things across four team members.
5. Monthly KPI tracker. Planned versus actual by campaign type, plus the lifecycle coverage check and the month-over-month retention metrics worth watching.
6. 2026 key dates. The retail and seasonal dates most DTC brands plan around, with a column for your own launches and inventory milestones — which matter more than the generic list.
The ten fields, and what belongs in each
| Field | What goes in it | The mistake to avoid |
|---|---|---|
| Goal | The one job this send does: acquire, convert, reactivate, educate, retain, cross-sell | Leaving it blank because "it's a sale email." Half your calendar ends up doing one job |
| Audience | The named segment, e.g. Lapsed Subscribers, VIP, Engaged 0–30 days | Writing "everyone." If it truly goes to everyone, say so deliberately — it should be rare |
| Offer | The actual incentive and code, or "none" | Recording "sale." You need the depth and the code to spot an offer ladder that has collapsed into one discount |
| Send date | Date and time | Date only. A 6am and a 5pm send are different campaigns with different results |
| Channel | Email, SMS, or push | Keeping SMS on a separate sheet, which is how a text and an email with the same offer go out forty minutes apart |
| Owner | One person's name | A team name. Rows owned by "creative" are owned by nobody |
| Status | Planned → Briefed → In design → In review → Approved → Scheduled → Sent | Using it as a checkbox. The intermediate states are what tell you a send is about to slip |
| Approval date | The date sign-off actually happened | Skipping it. This is the column that settles disputes, and it takes two seconds |
| Revenue target | What this send should contribute | Leaving it empty. If the column doesn't sum to your monthly goal, you found out in planning instead of on the 28th |
| Results | Actual revenue, plus the one metric that explains it | Filling it in for good months only. The misses are where next month's plan comes from |
How to use it in Google Sheets
- Click the Google Sheets link above and choose Make a copy. It lands in your Drive as your own file.
- Rename it with the brand and the month —
Brandname — Campaign Calendar — 2026. - Open the 30-day example tab first and read one row across, left to right. That is the shape of a complete plan.
- Go to Campaign calendar and set your monthly revenue goal in the header cell. The revenue target column sums against it, so you can see the gap while you plan.
- Add your fixed dates first — holidays, launches, shipping cutoffs, the client's own events.
- Fill each row left to right. Goal, then audience, then offer. Subject lines come last and they come from those three decisions.
- Share it with edit access to your team and comment access to the client. Comment access is the important half: clients should be able to react to the plan without changing it.
Two Sheets-specific tips. Use Data Data validation if you add new columns, so the dropdowns keep working. And turn on conditional formatting for the status column so anything sitting in "In review" past its approval date turns red without anyone having to check.
How to use it in Excel
- Download the
.xlsxand open it. Everything is native — no macros, no add-ins, nothing to enable. - Set your monthly goal in the header cell of the Campaign calendar tab.
- The dropdowns are built with standard data validation lists on the Field definitions tab. Edit that tab to change the options rather than editing every cell.
- Use Format as Table and filter by owner or status for a one-person view of what they owe this week.
- If your team lives in SharePoint or OneDrive, save it there rather than emailing versions around. A calendar that exists in four inboxes is four different calendars.
The filled-in 30-day example
This is the 30-day example tab, on the page so you can see it before you download anything. The campaigns, dates, segments and offers are a real generated month from EmailPilot's demo brand — a DTC coffee roaster. The owner, approval date, revenue target and result columns are illustrative, added to show a finished month rather than a planned one. It is a worked example, not a client case study.
Month goal: $48,000 in campaign-attributed revenue. Planned: $48,000 across 10 sends. Actual: $46,180 (96.2%).
| Send date | Ch. | Campaign | Goal | Audience | Offer | Owner | Status | Approved | Target | Result |
|---|---|---|---|---|---|---|---|---|---|---|
| Jan 2, 10:17 | New Year New Brew | Reactivate | Engaged (0–30 days) | Free shipping $35+ | Strategy | Sent | Dec 20 | $4,200 | $3,910 | |
| Jan 8, 11:00 | January Flash Sale | Convert | Engaged (0–30 days) | 20% off — FLASH20 | Copy | Sent | Dec 20 | $9,500 | $11,240 | |
| Jan 8, 11:05 | SMS | Flash Sale companion | Convert | Engaged (0–30 days) | 20% off — FLASH20 | Copy | Sent | Dec 20 | $2,800 | $2,150 |
| Jan 12, 09:30 | Colombia Huila launch | New product | Single Origin Enthusiasts | Free 2oz sample | Design | Sent | Jan 2 | $3,600 | $2,980 | |
| Jan 15, 08:00 | VIP Reserve early access | Retain | VIP Connoisseurs | 24-hour early access | AM | Sent | Jan 2 | $5,400 | $6,720 | |
| Jan 18, 07:30 | Pour-over brewing tips | Educate | Engaged (0–30 days) | 15% off equipment | Copy | Sent | Jan 9 | $2,100 | $1,640 | |
| Jan 20, 10:00 | Subscription gear upsell | Cross-sell | Subscription Loyalists | 15% off — SUBGEAR | Strategy | Sent | Jan 9 | $3,200 | $3,050 | |
| Jan 22, 09:00 | Win-back: We miss you | Reactivate | Lapsed Subscribers | 25% off + free ship | AM | Sent | Jan 9 | $4,800 | $4,310 | |
| Jan 25, 10:17 | Subscription drive | Acquire subs | Engaged (0–30 days) | 15% off subscriptions | Strategy | Sent | Jan 16 | $4,400 | $3,890 | |
| Jan 28, 11:00 | Last chance — month end | Convert | Engaged (0–30 days) | 20% off — JAN20 | Copy | Sent | Jan 16 | $8,000 | $6,290 |
The variance is the useful part. The flash sale beat plan by 18% and the VIP early-access send — no discount, just a twenty-four hour window — beat plan by 24%. Three sends missed by more than a fifth: the SMS companion at 23% under, fired five minutes after its own email; the educational send at 22% under; and the end-of-month "last chance" at 21% under, which was the third sitewide 20%-off send in four weeks. This list responds to access and scarcity more than to another sitewide discount, and SMS needs its own hour rather than riding alongside an email. Neither read is available unless the results column gets filled in.
Filling it in: the short version
- Set the monthly revenue number before you add a single campaign.
- Enter your fixed dates — holidays, launches, inventory, shipping cutoffs.
- Give each slot a campaign type so the month has a mix rather than nine promotions.
- Pick the audience before the subject line. The segment determines the offer and the realistic target.
- Set the offer ladder for the whole month at once and read the offer column top to bottom. Repetition is visible instantly.
- Add SMS rows on the same grid, with their own targets.
- Assign one owner per row and back-date the brief, design and approval milestones.
- Send the client the plan for approval — not the finished emails.
- Fill the results column in the first week of the following month.
- Compare planned versus actual by campaign type, and let that decide next month's mix.
When the spreadsheet stops being enough
This template is genuinely good and most brands should start here. It stops scaling at three predictable points.
The first is client approval. Emailing a spreadsheet to a client and collecting feedback in a reply thread works for one brand and falls apart at three. The second is multi-brand. Once you are running five or ten accounts, the calendar becomes ten files with ten slightly different column orders. The third is the feedback loop — pulling last month's actuals from your ESP and typing them into the results column is the step that quietly stops happening around month four.
AI Calendar Planning was built for that third stage. It generates the month from your stored brand context rather than a blank grid, and every campaign arrives with the send date and time, channel, type, segment, two subject line variants, preview text, offer, hero headline, CTA and the rationale for why the send exists. Client Approval Workflows turn the plan into a shareable approval page that clients can comment on inline without creating an account, Automated Brief Generation converts approved rows into production briefs that push into Asana, and the Revenue Analytics Dashboard reports actuals against the targets you planned — so the monthly variance review stops depending on someone remembering to retype numbers into a spreadsheet.
If you are running one brand, use the spreadsheet. If you are running ten, the spreadsheet is costing you more than it saves.
Questions people ask
Is this email marketing calendar template really free?+
Yes. Download the Excel or Google Sheets version and use it for client work, internal planning, or anything else. No attribution required.
Does it work in Google Sheets and Excel both?+
Yes. The Sheets version is a copy-to-your-Drive link; the Excel file is a standard .xlsx with no macros. Formulas and dropdowns work as intended in Excel, Google Sheets and LibreOffice. It opens in Apple Numbers too, though Numbers handles data validation differently and the dropdowns may not survive the conversion.
Can I add my own columns?+
Yes, and most agencies do. Common additions are a UTM or campaign-code column, a design link, and a second approval column when a send needs both a brand and a legal sign-off. If you add a dropdown column, point its validation at the Field definitions tab so the options stay editable in one place.
What's the difference between an email marketing calendar and a content calendar?+
A content calendar plans publishing across channels and is organised by theme. An email calendar plans sends against revenue and segments, and carries offer, audience and target columns a content calendar has no place for. Brands usually need both, and they should be separate documents.
How many campaigns should be on a monthly calendar?+
For most established DTC brands, eight to twelve campaign sends a month to engaged segments, plus SMS companions. The count matters less than whether each send has a distinct job and a distinct audience — two sends a week to different segments beat four to the same one.
Can I use this template for SMS as well as email?+
Yes, and you should. The channel column exists precisely so both live on one grid. Keeping SMS on a separate sheet is how brands end up sending a text and an email with the same offer within the hour.
Does it include a 2026 holiday calendar?+
The example month is January 2026, and the workbook includes a reference list of the retail dates most DTC brands plan around. Your own launches and inventory dates matter more than the generic list, which is why they go in first.
How do I share it with a client without letting them edit it?+
In Google Sheets, share with Comment access rather than Edit. Clients can react to every row without moving anything. In Excel, use a SharePoint or OneDrive link with view-and-comment permissions.
About this template
Damon Didier is the founder of EmailPilot and CEO of WIN, a Klaviyo Master Platinum retention marketing agency based in Plano, Texas. He has worked in email marketing for more than eighteen years and has spent the last five running WIN, where the team plans and executes email and SMS programs for B2C brands in the $15–80M revenue range across e-commerce, food and beverage, restaurant, and health and wellness.
Methodology. This template is the internal planning grid WIN standardised on across client accounts running on Klaviyo, Braze, Mailchimp and Fishbowl. Its column set is the result of repeatedly rebuilding rows that were missing an owner or an approval date, and of one too many months where nobody could reconstruct what a campaign had been expected to earn. The filled example is a real generated month from EmailPilot's demo brand, with the approval and results columns completed so the download shows a finished month rather than an empty one.
Last updated: September 2026.
Calendar Drop
Take the calendar.
Excel, Google Sheets and CSV, with the filled 30-day example included.
Then read the guide that explains the process behind it How to make an email marketing calendar
Running this across more than one brand? EmailPilot generates the month, routes it through client approval, and turns approved campaigns into briefs. Start a 7-day free trial
KEEP BUILDING
