Event Marketing Calendar

Free template

The screening finished on Tuesday. Your site is still selling tickets.

Every content calendar plans what to publish. An event also has to plan what to take down, and it has to work backwards from a date that will not move. This is the calendar we run festivals on.

No email. No signup. Rebrand it and use it with your own clients if you like.

Six campaigns, not one calendar
Announce
Build the list. Nobody is buying yet and that is fine.
T-60
On sale
Convert the list you spent five weeks building.
T-35
Momentum
Sub-events, press, partners. The long middle.
T-21
Last call
Where the revenue actually lands.
T-7
Live
Run it. Assets start expiring hourly.
T-0
After
The one everyone skips.
+7

Borrowed from launches: T is your event date, so T-minus 36 means an asset goes live thirty-six days before the doors open. Every row in the file is anchored to it, not to a month. Change the event date and the whole plan re-reads itself.

The problem

An event is not content with a deadline.

A content calendar assumes publishing is continuous and no single date matters more than another. Events break all three assumptions at once, which is why running one out of a normal calendar feels like fighting the tool.

It runs backwards

“Published in May” tells you nothing. “Published 36 days out” tells you whether it landed before the on-sale push or after everybody had already decided. Months are the wrong unit. The only unit that matters is days until the doors open.

The assets expire

A screening that already happened. A sold-out ticket link. A lineup that changed last week. Every one of them is your site telling people something untrue, and the engines reading it have no way to know. Content marketing never has to think about this. Event marketing thinks about little else by week three.

Discovery happens in a narrow window, on queries that never mention you

Nobody types your festival’s name into an assistant before they know it exists. They type “what’s on in Toronto this weekend”. That query spikes for about four days and it is answered almost entirely from listing sites and local press, not from your own domain. If you are not in those, you are only findable by people who already found you.
The layer

The columns that a content calendar has no reason to own.

The tab is banded left to right: ASSET, BUILD, TIMING, DISCOVERY. One row per asset, not per channel. The same story pushed on Instagram and in an email is two rows, because they go live on different days and stop being true on different days. Most of the file is ordinary. These are not.

IT-minus
Days between go live and the event start. Calculated, never typed.
The spine. It reads from the event date on the Legend tab, so one cell drives the whole plan. Green is fourteen days or more. A plan that is mostly amber and orange is not a plan, it is a fortnight of panic with a spreadsheet attached, and this column tells you that in October rather than in June.
14 and up7 to 131 to 6Event day or after
JExpiry Date
The day this asset stops being true.
The column nobody has, and the reason this file exists. A content calendar plans publishing. An event calendar has to plan unpublishing. Decide the expiry when you decide the go-live, because during the event week nobody is deciding anything.
LTakedown
Auto, Manual, Archive, Evergreen, or None.
How the asset actually disappears. Auto means the site handles it on its own, which is the only answer that survives a live festival. None is red, because None means a human has to remember, and during the busiest week of the year nobody remembers.
AutoManualArchiveEvergreenNone
NDiscovery Prompt
The question a real person asks that this asset should answer.
Not your event name. “Things to do in the Distillery District this weekend.” “Is the film festival free.” “Where do I park for the gala.” If nothing you publish answers those sentences, your reach stops at the people who already follow you.
OEvent Schema
The JSON-LD type on the page.
Event and SubEvent are the only way a listing surface or an assistant reads a date, a venue and a price without guessing. For a multi-day festival with its own programme, this is not a technical nicety, it is the discovery mechanism. Same reason it worked for the ICFF sub-events. None is red.
EventSubEventFAQPageOfferNone
PListing
Whether the event is submitted to the listing sites that matter.
Treat this as a distribution channel, not admin. When an assistant answers “what’s on this weekend”, it quotes listing sites and local press far more than it quotes your own domain. Missed carries brand red: it is the cheapest reach in event marketing and the easiest to forget in week two.
Not neededTo submitSubmittedLiveMissed
The method

How to run it yourself.

The whole thing is on this page. If you want to do it yourself, this is everything you need.

1

Set the event date before you plan anything

One cell on the Legend tab. It drives every T-minus in the file, so the pacing numbers are meaningless until it is filled. Set the on-sale date at the same time: it is the second anchor and it is the one people forget they chose.
2

Plan in phases, not months

Announce, On sale, Momentum, Last call, Live, After. Six short campaigns with different jobs, not one calendar with a lot of rows. Announce builds a list and converts nobody, which is not a failure. On sale converts the list you spent five weeks building.
AnnounceOn saleMomentumLast callLiveAfter
Last call is orange on purpose. It is the highest-converting window in the whole campaign and the one that reliably gets planned last, usually at midnight, usually badly.
3

Give every dated asset an expiry and a takedown method

In the same sitting you decide the go-live. Not later. Later is the live week, and in the live week the answer will be Manual, which means it will not happen.
Auto is the only takedown that survives contact with a real festival. If your site can hide a past screening on its own, that is the whole problem solved once instead of forty times. Every None in this column is a person who has to remember something on the busiest day of their year.
4

Write the discovery prompt, then claim the listings

For each asset, the actual sentence someone types who has never heard of you. Then work the Listing column like the distribution channel it is: local press, event listings, partner calendars. These are the sources assistants quote for “what’s on”, and submitting to them costs an afternoon.
Put Event or SubEvent schema on anything with a date, a venue and a price. If you want to see whether any of it is landing, that is the GEO visibility tracker, run on the prompts you wrote here.
5

Read the pacing before you build anything

The tracker counts your spread: assets 14+ days out, assets in the final six days, and the final-week share. Every agency believes their event campaign is front-loaded. Almost none are. If a third of the plan goes live in the last six days, the campaign is the last six days, and you have three months to fix that instead of one weekend.
The other number to watch is “past expiry but still marked Live”. It checks against today’s date every time you open the file, and it should always read zero. Anything else is on your site right now, telling people about something that already happened.
Calibration

Three ways people get this wrong.

Back-loading the whole campaign

It feels efficient. Everything is ready, nothing is stale, one big push. Then the last week arrives and there is no list to push to, because Announce never happened and you are asking strangers to buy a ticket for Saturday.

Treating listings as admin

They get assigned to whoever is least busy and quietly become Missed. Meanwhile they are the single biggest source assistants and search both quote for “what’s on this weekend”, which is the exact query your buyers are typing four days out.

Planning the publish and improvising the takedown

Nobody sets out to do this. It happens because expiry feels like a problem for later, and later is the week when your team is running an event. Two months on, the site is a museum of things that already happened and a real person just tried to buy a ticket for one of them.
Questions

FAQ

Is the event marketing calendar really free?
Yes, and there is no email form. Download it, edit it, rebrand it, use it with your own clients. It is the file we run festival campaigns on, published as it is.
What does T-minus mean?
It is borrowed from launches. T is your event date, so T-minus 36 means the asset goes live thirty-six days before the doors open. The column calculates itself from the go-live date and the event date on the Legend tab. You never type it, and changing the event date re-reads every row at once.
Does it work for a one-day event, or only festivals?
Both. A single conference is the same six phases in a shorter window, and the Sub-event column just sits empty or says “Festival-wide”. Multi-day events with their own programme get more out of it, because that is where expiry and SubEvent schema start doing real work.
Why is one row per asset rather than per channel?
Because the same story on Instagram and in an email goes live on different days and stops being true on different days. Bundling them into one row means one of the two has no expiry and no owner, and that is the one that ends up still live in August.
Can I use it in Google Sheets?
Yes. Use the Make a copy link at the top of this page. The dropdowns, colour coding and the live tracker all carry across.
How many rows does it handle?
The dropdowns and tracker formulas run to row 155. Add rows past that and you have to extend both, or the tracker will quietly stop counting them.
Or we can just run it

The calendar is the easy part.

A spreadsheet does not build the site that hides a screening the moment it finishes, and it does not submit the listings. We built the ICFF Lavazza IncluCity Festival site: the programme page, the filtering, the map, the box office, the schema, and the logic that quietly retires a sub-event the second it is over.