Sync Calendly bookings to Loops and trigger prep emails

When someone books a meeting on Calendly, save them in Loops with their meeting details and fire your Loops email workflow for reminders, prep tips, and no-show follow-ups.

Deterministic Code
CalendlyLoops.soSalesMarketingEmail AutomationMeeting WorkflowsData Sync
PromptCreate

Build a deterministic code workflow that syncs new Calendly bookings into Loops.so and fires a pre-meeting email sequence. No LLM reasoning, no classification, every field maps cleanly from the Calendly payload into Loops.

Trigger: an incoming Calendly webhook for the invitee.created event. The payload contains the invitee (email, name, full payload including reschedule_url and the parent scheduled_event), and the scheduled event (start_time, end_time, event_type name, uri/uuid).

Step 1: call Loops Update Contact as an upsert. Pass the invitee's email as the identifier. Split the Calendly invitee name into firstName and lastName (first whitespace token is firstName, the rest joined is lastName; if only one token, leave lastName empty). Then include these custom properties (camelCase): meetingType set to the Calendly event type name, meetingDate set to the scheduled event start_time as ISO-8601, calendlyEventUuid set to the scheduled event UUID (last path segment of the scheduled_event URI), and rescheduleUrl set to the invitee's reschedule_url. Update is an upsert in Loops, so this creates the contact if no contact matches the email.

Step 2: call Loops Send Event with eventName set to meeting_booked, identifying the contact by the same email used in step 1. Include eventProperties (camelCase) with meetingDate (ISO-8601 start time), meetingType (the event type name, or its slug if more convenient), and rescheduleUrl. This event will be the trigger for a published Loops email workflow that handles pre-meeting reminder and prep emails (agenda asks, a one-pager link, a calendar reminder one hour before, and a no-show follow-up). I'll build the actual Loops workflow inside Loops; this automation just needs to keep the contact fresh and fire the event.

Run step 1 first, then step 2, sequentially. If step 1 fails, do not send the event. If step 2 fails, leave the updated contact in place and log the failure so I can retry. Both Loops endpoints should be called with the workspace's Loops.so API key.

Keep the workflow code-only with two discrete nodes (one per Loops call). No agent reasoning. The whole point is determinism: every Calendly booking results in exactly one contact upsert plus one event send, in that order.

What does this prompt do?

  • Listens for every new Calendly booking the moment it happens, no manual exports or middleware.
  • Saves the invitee in your Loops audience with their name, email, meeting type, meeting time, and reschedule link.
  • Fires a Loops event called meeting_booked so your published Loops workflow can send agenda asks, a one-pager, a one-hour reminder, and a no-show follow-up.
  • Updates the contact if they already exist in Loops, creates them if they don't, so you never end up with duplicates.

What do I need to use this?

  • A Calendly account with permission to add a webhook for new bookings.
  • A Loops.so account with API access turned on.
  • A published Loops email workflow set to trigger on the meeting_booked event.

How can I customize it?

  • Change the event name from meeting_booked to whatever your Loops workflow listens for.
  • Add more custom properties from the Calendly payload, like booking question answers, host name, or location.
  • Run the same flow off cancellations too, so a canceled booking can fire a different Loops email or clean up the contact.

FAQs

Will this create duplicate contacts in Loops?
No. If the email already exists in your Loops audience, we update that contact. If it doesn't, we create a new one. Loops handles the matching for us.
Do I have to write the prep emails inside this workflow?
No. The emails live in Loops, in a workflow you build there. This automation just keeps the contact fresh and triggers the event, so your Loops sequence does the actual sending.
Does this work for every Calendly event type?
Yes. Every event type fires the same booking notification, and we save the event type name on the contact so your Loops workflow can branch on it (for example, send a different prep email for a demo vs. a discovery call).
What if someone reschedules?
The reschedule link is saved on the Loops contact, so your reminder emails can offer it. You can also extend this workflow to listen for reschedules and update the meeting time.
Will this overwrite other properties on my Loops contact?
Only the fields we send (first name, last name, meeting type, meeting time, reschedule link, Calendly booking ID). Everything else on the contact stays exactly as it was.

Related templates

See which Calendly meetings actually turned into revenue

A dashboard that lines up every booking from the last 90 days with the HubSpot deals it created, so you can see which meeting types actually pay.

Calendly
HubSpot
App
Calendly team workload board: see who is drowning in meetings

Open one board every Monday to see each person's meetings, booked hours, and spare capacity, then hand the next booking link to whoever has room.

Calendly
Slack Bot
App
No-show and cancellation recovery desk for Calendly

Work through last week's missed and canceled meetings one at a time, flag who really ghosted, and send a fresh booking link only when you decide to.

Calendly
Gmail
HubSpot
App
Stop Outreach sequences when a prospect books on Calendly

The moment someone books a meeting on Calendly, finish every active Outreach sequence they are in and tell the owner in Slack.

Outreach
Calendly
Slack Bot
Agentic Task
Send DocuSeal waivers automatically for new Calendly bookings

When a client books a consultation, email them a pre-filled waiver to sign and log it in a tracker so your front desk sees who still owes paperwork.

DocuSeal
Calendly
Google Sheets
Deterministic Code
Turn Calendly bookings into prepped Keap records and Slack briefs

When someone books on Calendly, we update and tag their Keap record, add a prep task, and send the rep a Slack brief that flags existing customers.

Calendly
Keap
Slack Bot
Agentic Task

Stop copy-pasting Calendly bookings into your email tool.

Connect Calendly and Loops once, and every new booking lands in your audience the second it happens, ready to trigger your prep email sequence.