Skip to content
Add to Calendar Lab

Guides · Updated

How do I add an add-to-calendar link to an email?

Email clients don't run JavaScript, so an add-to-calendar button in email has to be plain links: one per calendar (Google, Outlook.com, Office 365, Yahoo) plus a link to a hosted .ics file for Apple Calendar and Outlook desktop. Build them by hand for free, or use a hosted service that adds one smart link, updates and click tracking.

Can you put an add-to-calendar button in an email?

Yes, but only as links. A “button” in an email is an HTML link styled to look like one. Website add-to-calendar widgets rely on JavaScript to open a menu and build files on the fly, and email clients do not run scripts, so those widgets fail in Gmail, Outlook and Apple Mail.

The working pattern is a row of links, one for each calendar your audience uses:

Calendar What the link does How it works
Google Calendar Opens a prefilled event editor calendar.google.com/calendar/render?action=TEMPLATE&...
Outlook.com (personal) Opens a prefilled event editor outlook.live.com/calendar/deeplink/compose?...
Office 365 (work/school) Opens a prefilled event editor outlook.office.com/calendar/deeplink/compose?...
Yahoo Calendar Opens a prefilled event editor calendar.yahoo.com/?v=60&...
Apple Calendar, Outlook desktop Downloads an .ics file Link to a hosted .ics file

None of these URL formats is officially documented by Google, Microsoft or Yahoo. The parameters come from community testing, collected in the add-event-to-calendar-docs repository (last checked 2026-08-19). Apple has no web “add event” URL, so Apple users need the .ics file.

Fill in each calendar’s URL template with your event’s title, start and end time, location and description, then URL-encode the values. For example, a Google Calendar link uses dates=20261114T090000Z/20261114T100000Z, where the trailing Z means UTC and both halves need it. For an all-day event, use dates only, with the end date set to the following day: dates=20261114/20261115.

Convert times to UTC before you build the links. That avoids most “the event shows at the wrong hour” reports, because each calendar then converts to the recipient’s own time zone. See hand-built links for the full parameter list, costs and limits.

Then paste each URL into your email:

Keep each URL well under a few thousand characters. The community docs measured about 31,000 characters as a best case for Outlook.com’s server, but browsers, link trackers and email clients set lower limits, so long descriptions are the usual cause of broken links.

Use a link to a hosted .ics file for marketing and newsletter emails. An .ics file is a plain-text calendar event defined by RFC 5545; see .ics files explained for what goes in one.

Link to hosted .ics .ics attachment
Works in Apple Calendar, Outlook desktop Yes Yes
Email size Unchanged Larger
Can you change the file after sending? Yes, for people who haven’t added it yet No
Click tracking Possible with your own redirect No
Common in bulk email Yes Less common

An attachment makes more sense for one-to-one emails, such as a booking confirmation. If you want the recipient to get accept and decline buttons and later updates, send a calendar invitation from your calendar or booking system instead; that uses the scheduling rules in RFC 5546 rather than a static file.

Why don’t add-to-calendar buttons work in some email clients?

Most failures come from one of four causes:

  1. JavaScript. Script-based buttons never render in email.
  2. Link rewriting. Email platforms wrap links for click tracking. That is usually fine, but a very long calendar URL can be cut off or break after redirection.
  3. Wrong Microsoft host. An outlook.live.com link opens a personal Outlook.com account and an outlook.office.com link opens a work or school account. Offer both. Outlook has its own quirks, covered in why add-to-calendar breaks in Outlook.
  4. Time zones. A time without Z or a time zone is read in the viewer’s own time zone, so the event shifts for anyone elsewhere.

It depends on whether you need updates and data after you hit send.

Hand-made links Hosted service
Cost $0 Free tiers with caps, then monthly plans
Links per event One per calendar Usually one smart link or button
Event updates after adding No Some offer subscription calendars that do update
Click and add analytics Only if you build them Usually included
RSVP No Some plans
Depends on a third party No Yes; links break if the service shuts down or your plan lapses

Hand-made links suit a one-off event and a small list. A hosted service suits recurring campaigns, many events, or teams that need analytics. Compare plans, add caps and test results on the comparison table, the pricing page and best free options.

Questions

Can I use an add-to-calendar JavaScript widget in an email?

No. Email clients strip or ignore script, so the widget's dropdown never renders. Use plain HTML links styled as buttons instead.

Should I attach an .ics file or link to one?

Link to a hosted .ics file in most marketing emails. Attachments add size and give you no way to see who used them, while a link works the same in every client that can open a URL.

Does Mailchimp have a built-in add-to-calendar button?

Not as a native merge tag. Mailchimp lists an AddEvent integration that adds a calendar content block, but it requires an AddEvent account and Mailchimp's new email builder; otherwise you paste your own links into a text or button block.

Is there one link that works for every calendar?

Not without a server. A single link that detects the recipient's calendar needs a hosted landing page, which is what paid services provide. Hand-made links need one link per calendar.

Do hand-made add-to-calendar links update if the event changes?

No. Once someone saves the event, a later change to your link or file doesn't reach their calendar. Only a subscribed feed or a new invitation can change it.