Skip to main content

How do I put an add-to-calendar button in a HubSpot email with AddCal

T
Written by Tom

There are three ways, depending on whether the event is the same for everyone and whether you use the AddCal HubSpot integration. All three put ordinary links into HubSpot's Button module, because email clients cannot run a calendar picker.

For one event (every plan)

Every AddCal event has a public page. Its URL on its own lets the reader pick their calendar; add a calendar name to the end for a direct link:

https://addcal.co/e/your-event/google
https://addcal.co/e/your-event/apple
https://addcal.co/e/your-event/outlook
https://addcal.co/e/your-event/office365
https://addcal.co/e/your-event/yahoo

  1. Create the event in AddCal, open its public page and copy the links you want.

  2. In the HubSpot email editor, drag in a Button module per calendar, or one button to the event page.

  3. Paste the link. Leave HubSpot's click tracking on; it redirects and then lands on AddCal. Append UTM parameters if you want the adds attributed to the email in AddCal analytics.

  4. Send a test and tap each button on a phone.

From a workflow, using the HubSpot integration (Business)

If HubSpot is connected to AddCal, the AddCal workflow actions return the calendar links for the event they act on, so a follow-up email in the same workflow can carry the buttons without you pasting anything.

  1. Connect your portal under Connect, then HubSpot, in AddCal (you need the admin role on your AddCal team).

  2. In the HubSpot workflow editor, add an action and pick AddCal under integrations. Choose the event from the picker.

  3. In a later email step, insert the action outputs: event_url for the picker page, or google_calendar_url, outlook_url, office365_url, yahoo_url and ics_url for direct buttons.

The same integration can send a real calendar invite instead of a link (the Send calendar invite action), wait for the reply and branch on yes, maybe or no, and it writes every RSVP back to the contact as properties and a logged meeting. See the HubSpot integration overview for what syncs.

For personalised events (Business)

When each contact has their own date, for example a renewal, an onboarding call or a delivery slot stored on the contact, use a Dynamic Link with HubSpot personalisation tokens:

https://addcal.co/api/dyn?uid=dk_abc123&service=google&title={{ contact.event_title }}&start={{ contact.event_start }}&timezone=America/New_York

  • Create the Dynamic Link key under Connect, then Dynamic Links, in AddCal.

  • Use contact or custom object properties for the title and start. Pass end or duration (minutes) too.

  • One button per service (google, apple, outlook, outlook_web, office365, yahoo, ics), or drop service for the picker.

  • Use the Link Builder in AddCal to encode the URL while keeping the tokens intact. See Using merge fields with Smart Links and Dynamic Links.

Clicks are counted in AddCal per calendar app and, with UTM parameters, per email.

For a programme of events

If the same contacts should get every event, send the calendar's subscribe link once. Their Google, Apple or Outlook calendar then updates itself when you add or change events, with no further emails. See Creating and sharing your first calendar.

Common questions

Do I need the integration installed? Not for the first and third options; those are links. The workflow actions and the RSVP sync need the HubSpot integration, which is a Business plan feature.

Can I create the event from a HubSpot workflow? Yes. Use a Smart Link in a workflow email (the event is created the first time it is opened), or a Send a webhook action calling the AddCal API. See Smart Links and Developer API and Dynamic Links.

Which plan? Per-event links are on every plan. Dynamic Links and the HubSpot integration are Business.

Related

Did this answer your question?