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.
How do I build the links by hand?
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:
- Gmail: insert a link (Ctrl/Cmd+K) on text such as “Add to Google Calendar”.
- Outlook: insert a hyperlink the same way; Outlook keeps standard
httpslinks. - Mailchimp and other email platforms: add a button or text block and set its link to each URL.
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.
Should I use a link to an .ics file or an .ics attachment?
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:
- JavaScript. Script-based buttons never render in email.
- 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.
- Wrong Microsoft host. An
outlook.live.comlink opens a personal Outlook.com account and anoutlook.office.comlink opens a work or school account. Offer both. Outlook has its own quirks, covered in why add-to-calendar breaks in Outlook. - Time zones. A time without
Zor a time zone is read in the viewer’s own time zone, so the event shifts for anyone elsewhere.
Should I use a hosted service or make links myself?
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.