Add-to-Calendar Buttons and .ics Files: Get Your Events Into Attendees’ Calendars
Someone buys a ticket to your workshop three weeks before it happens. They’re excited, they get the confirmation email, and then life takes over. On the day of the event, the seat you sold sits empty — not because they changed their mind, but because nothing ever landed in their calendar. Studies of event attendance keep pointing at the same boring culprit: people forget. An add-to-calendar button is the cheapest insurance you can buy against that, and this guide explains how the two main mechanisms — Google Calendar links and .ics files — actually work, and how to offer both on a WordPress event site.
Why a calendar entry beats another reminder email
Reminder emails compete with everything else in an inbox, and open rates drop the closer you get to event day. A calendar entry is different: it sits inside the one app almost everyone checks before committing to anything else, it fires the attendee’s own preferred notifications, and it silently blocks the time slot so a competing dinner invitation shows up as a conflict. It also carries the venue address, so “where was that again?” gets answered by a tap on the entry rather than a search through old emails.
If you’re fighting empty seats, calendar buttons pair well with the tactics in our guide on reducing event no-shows — but they’re the lowest-effort item on that list, because once set up they work for every future event automatically.
The two mechanisms: Google Calendar links and .ics files
There is no single “add to calendar” standard, but in practice two mechanisms cover essentially every attendee.
Google Calendar template links
Google Calendar accepts a specially formatted URL (the calendar.google.com/calendar/render “template” link) containing the event title, start and end times, a description, and a location. When an attendee clicks it, Google opens a pre-filled “save event” screen in their own account. No file download, no import dialog — one click and one confirmation. This is the smoothest path for the large share of attendees who live in Gmail and Android.
.ics files (iCalendar)
Everything else — Apple Calendar, Outlook, Thunderbird, Fastmail, and even Google Calendar itself — understands the iCalendar format, a plain-text file standardized as RFC 5545. An .ics file describes the event as a series of lines: a start and end timestamp, a summary, a description, a location, and a unique identifier (UID) that lets calendar apps recognize the same event on re-import instead of duplicating it. On iPhones and Macs, tapping an .ics link opens the event straight in Apple Calendar.
Offering both — a Google link for one-click saving and an .ics download for everyone else — is the pattern you’ll see on well-run event pages, and it’s the pattern worth copying.
What a correct .ics file has to get right
The iCalendar format looks simple but has sharp edges, which is why hand-rolled .ics files are a common source of support tickets. If you’re building or auditing your own, check these four things.
Timezones. The safest approach is to convert the event’s local start time to an absolute UTC instant (the Z-suffixed format, e.g. 20260810T170000Z). Each attendee’s calendar app then renders it in their own timezone — an attendee in New York and one in Berlin both see the correct local time. Publishing naive “wall clock” times without timezone information is how attendees end up an hour late after a daylight-saving switch.
An end time, always. The DTEND line is what makes the entry block time in a calendar. If your event has no explicit end time, pick a sensible default duration rather than emitting a zero-length event.
Escaping and line folding. RFC 5545 requires commas, semicolons and newlines in text fields to be escaped, lines to end with CRLF, and any line longer than 75 octets to be “folded” onto a continuation line. Get this wrong and the file imports fine in one app and silently fails in another.
Unique UIDs. Every event needs a globally unique UID. For recurring events, each occurrence the attendee saves should carry its own UID so saving the Tuesday and Thursday sessions creates two entries instead of one overwriting the other.
How Venuera handles this out of the box
If your events run on Venuera — our free, WooCommerce-based ticketing plugin where WooCommerce products are your tickets — you don’t need to build any of the above. Every published event page automatically shows an “Add to calendar” row with two links: Google Calendar and Download .ics.
Under the hood, a few details are worth knowing:
Times are exported as UTC instants. Venuera converts the event’s start and end from the event’s own timezone to UTC before building either the Google link or the .ics file, so both land at the correct local time in the attendee’s calendar — including for attendees in a different timezone than the venue. If an event has no end time, the calendar entry defaults to a two-hour duration (developers can change this with the venuera_calendar_default_duration filter).
The .ics file is a valid RFC 5545 document. Escaping, CRLF line endings and 75-octet line folding are handled for you, and the file is served with the correct text/calendar content type under a filename based on the event’s slug. The entry includes the event title, a plain-text description drawn from the event’s excerpt, the full venue address as the location, and a link back to the event page. For online events, the location field points to the event page URL instead of a physical address.
Recurring events pick the right date. With the Recurring Events add-on, the calendar links follow whichever occurrence the visitor has selected on the page — so someone booking the March 12th session downloads a calendar entry for March 12th, not the series start date. Each occurrence gets its own UID, so attendees of a weekly class can save several sessions as separate calendar entries. If you sell repeating classes, our walkthrough on setting up recurring events for classes and workshops covers the full setup.
You can turn it off per event. Each event’s settings include a “show calendar links” checkbox. Unchecking it removes the links from the event page and disables the public .ics download for that event — useful for private events where you’d rather not expose details.
Because the calendar entry links back to your event page, it also quietly helps discovery: that page carries Schema.org Event markup, which is what makes your events eligible for rich results in search. We’ve covered that side in detail in our guide to event schema markup in WordPress, and Google documents the requirements in its event structured data guidelines.
Best practices for calendar buttons that get used
Put them where the intent is. The event page is the baseline. The moment of highest intent, though, is right after purchase — a buyer who just paid is the person most willing to spend three more seconds saving the date. Make sure the path from your order confirmation back to the event page (and its calendar links) is short.
Write the description for day-of use. The attendee will read the calendar entry on their phone, on the way to your event. Doors time, entrance details, and a “bring your ticket QR code” nudge are worth more there than marketing copy. In Venuera the description comes from the event excerpt, so a tight, practical excerpt does double duty.
Keep the location machine-readable. A full street address in the location field means the calendar entry links straight into the attendee’s maps app. “The usual place” does not.
Don’t gate it. Calendar links should work for anyone viewing a published event — a visitor who saves the date before buying is a warmer lead, not a lost sale.
And once attendees show up because the event was actually in their calendar, close the loop at the door: the Check-in add-on scans each ticket’s unique QR code so you know exactly who made it.
Sell tickets where forgetting is hard. Venuera adds Google Calendar and .ics links to every event page automatically — free core, no per-ticket fees, built on WooCommerce. See plans and add-ons →
Frequently asked questions
What is an .ics file?
An .ics file is a plain-text calendar file in the iCalendar format (RFC 5545). It contains an event’s start and end times, title, description and location, and can be opened by Apple Calendar, Outlook, Google Calendar and most other calendar apps to add the event with one click.
Do add-to-calendar buttons work on iPhone and Android?
Yes. On iPhone, tapping an .ics link opens the event in Apple Calendar. On Android, a Google Calendar link opens a pre-filled save screen in the Google Calendar app. Offering both link types covers virtually every device.
How does Venuera add calendar links to event pages?
Venuera automatically shows a Google Calendar link and a Download .ics link on every published event page. Times are converted to UTC so they display correctly in each attendee’s timezone, recurring events link to the selected occurrence, and the links can be disabled per event in the event’s settings.
Do calendar entries really reduce no-shows?
A calendar entry blocks the time slot in the attendee’s schedule, fires their own reminder notifications, and keeps the venue address one tap away — all of which address forgetting, the most common cause of no-shows. It works best combined with a short reminder email a day before the event.