Win back cancelled Cal.com bookings with a recovery email
When someone cancels a Cal.com meeting, an agent sends a personalized rebook email and updates HubSpot so the lead does not slip through the cracks.
Build me an agent workflow that runs every time a Cal.com booking is cancelled. The trigger should be a Cal.com poll on the booking_cancelled event.
When a cancellation comes in, the agent should:
1. Use Cal.com Get a Booking to pull the full booking details, including the cancellation reason, the attendee email and name, and the original event type (for example 'Sales intro call' or 'Customer success check-in').
2. Check the cancellation reason. If it contains phrases like 'no longer interested', 'not interested', 'wrong person', 'wrong contact', 'unsubscribe', or 'do not contact', stop here and do nothing else. Otherwise continue.
3. Call Apollo People Enrichment on the attendee's email to confirm their job title, seniority, and company. Use this only to set the right tone in the email (more formal for senior buyers, more casual for individual contributors). If Apollo returns nothing, fall back to whatever name and company Cal.com gave us.
4. Draft a short, personal recovery email in Gmail. The email should: acknowledge the cancellation by name, briefly reference the event type they had booked (without sounding scripted), and offer two clear paths. Path one is a one-click rebook link to the same Cal.com event type. Path two is a no-pressure reply option, something like 'if priorities have shifted, just reply and let me know what would be useful instead'. Keep it under 120 words. No marketing speak. Send the email via Gmail Send a Message from the host's inbox, with the original host on the From line.
5. Find the matching contact in HubSpot using Search Contacts by email. If found, update the contact with HubSpot Update Contact: set lifecycle stage to 'opportunity' if the original event type was a sales call, or 'customer at risk' if it was a customer success call. Also note the cancellation reason on the contact (in a 'last_cancellation_reason' or notes property if available).
6. Create a HubSpot Task with Create Task assigned to the deal owner on that contact, due in 3 days, titled 'Follow up: [attendee name] cancelled [event type] - check if rebooked'. Associate the task with the contact (and the deal if there is one).
If the contact is not found in HubSpot, skip the CRM update and the task and just send the recovery email.
Log a one-line summary at the end: who cancelled, which event type, whether an email was sent, and what HubSpot changes were made.
Additional information
What does this prompt do?
- Watches Cal.com for cancellations and reads the cancellation reason and original event type so the response fits the situation.
- Looks up the attendee in Apollo to confirm their seniority and company, then drafts a short Gmail message that acknowledges the cancellation and offers a one-click rebook link.
- Updates the matching HubSpot contact's lifecycle stage and creates a 3-day follow-up task for the deal owner if the prospect has not rebooked.
- Skips the recovery email when the cancellation reason makes it clear the meeting is not coming back, like 'no longer interested' or 'wrong person'.
What do I need to use this?
- A Cal.com account where your team takes meetings.
- An Apollo account for attendee enrichment.
- A Gmail account that can send the recovery email from your inbox.
- A HubSpot account where the contact and deal records live.
How can I customize it?
- Adjust the tone of the email or the wording of the two paths offered (rebook now, or reply if priorities changed).
- Change the lifecycle stage rules, like which event types map to 'opportunity' versus 'customer at risk'.
- Tune the skip phrases so the agent stays quiet on the cancellations you do not want to follow up on.
- Shorten or extend the follow-up task window if 3 days is not the right cadence for your team.
Frequently asked questions
Will this send an email for every single cancellation?
Does it work for both sales calls and customer success calls?
What if the attendee is not already in HubSpot?
Can I use a different CRM instead of HubSpot?
Who gets the follow-up task in HubSpot?
Stop letting cancelled meetings die in your inbox.
Connect Cal.com, Apollo, Gmail, and HubSpot once, and Geni runs this every time a booking gets cancelled.