Calendly and Twilio integrate through Calendly Webhooks and the Twilio Messages API to send SMS appointment confirmations, pre-meeting reminders, and post-call follow-ups automatically, reducing no-shows and improving the professionalism of your booking experience. This integration is used by consultants, coaches, sales teams, and customer success managers who use Calendly for scheduling and want to reach invitees by SMS at key moments in the meeting lifecycle rather than relying entirely on email reminders that may be buried in crowded inboxes. The connection uses Calendly's webhook subscription system to notify your middleware when bookings are created, cancelled, or rescheduled, and your middleware dispatches the appropriate Twilio SMS to the invitee's phone number collected during the Calendly booking form.
What You Need Before You Start
Generate a Calendly personal access token by logging into Calendly, navigating to Account, then Integrations, then API and Webhooks, clicking Get a Token, and copying the generated token for use as a Bearer token in all Calendly API calls. Your Calendly REST API base URL is https://api.calendly.com/ and all requests require the Authorization header set to Bearer {personalAccessToken} and the Content-Type header set to application/json. Register a Calendly webhook subscription by calling POST https://api.calendly.com/webhook_subscriptions with the Authorization header and a body containing url set to your middleware endpoint, organization set to your Calendly organization URI retrieved from GET https://api.calendly.com/users/me, and events as an array containing invitee.created, invitee.canceled, and invitee_no_show.created to capture the full booking lifecycle. From Twilio, collect your Account SID, Auth Token, and an SMS-capable phone number registered under an A2P 10DLC campaign, and add a phone number question to your Calendly event type booking form by navigating to the event type settings, then Questions, and adding a Phone Number field marked as required.
Step-by-Step Integration Guide
When a Calendly invitee.created webhook fires, your middleware receives a payload containing the event URI, the invitee URI, and the scheduled event start time. Fetch the full invitee record by calling GET https://api.calendly.com/invitees/{inviteeUuid} with your Bearer token to retrieve the invitee name, email, and the questions_and_answers array, then search that array for the element where question equals Phone Number and extract the answer value as the invitee phone. Normalize the phone to E.164 format and dispatch a Twilio SMS booking confirmation by calling POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json with Basic authentication, To set to the normalized phone, From set to your Twilio number, and Body set to a message including the invitee's first name, the event name, and the start time formatted in a human-readable date and time. Schedule a pre-meeting reminder SMS by storing the event start_time and invitee phone in your database at booking creation time, then running a scheduled job every 15 minutes that queries for events starting in 24 hours and again for events starting in 1 hour, dispatching a Twilio reminder SMS to each qualifying invitee with the event name, meeting link from the event location field, and a cancellation link.
Common Issues and How to Fix Them
The invitee phone number is not available directly in the Calendly webhook payload and requires a secondary API call to the Calendly invitees endpoint, which adds latency and a failure point if the Calendly API rate limit is hit during a high-booking period. Cache the invitee phone in your database immediately after the secondary API call and use the cached value for all subsequent SMS dispatches such as reminders and follow-ups rather than calling the Calendly API again. Calendly invitee.created webhooks fire for every booking including internal team member bookings when using round-robin or collective event types, which can cause your middleware to send SMS to your own team members who do not need external-facing booking confirmations. Add a filter in your middleware that checks whether the invitee email domain matches your company domain and skips the SMS dispatch for internal bookings. The Calendly phone number question returns the answer as a free-form string without E.164 normalization, and international attendees often enter their number in local format without a country code. Use the Twilio Lookup API at GET https://lookups.twilio.com/v2/PhoneNumbers/{number} to attempt phone validation and normalization, and fall back to logging the booking without SMS for numbers that cannot be parsed to a valid E.164 format.
How to Get More from This Integration
Build a post-meeting follow-up SMS by subscribing to the Calendly invitee_no_show.created event and dispatching a Twilio SMS to the no-show invitee 30 minutes after the scheduled start time with a rescheduling link retrieved from the Calendly scheduled event's rescheduling_url field, converting no-shows into rescheduled meetings rather than lost opportunities. Add a meeting preparation SMS 1 hour before the event that includes the video call link, any preparation materials link, and the host's direct phone number for technical issues, composing the body from the event location field which contains the video link when using Zoom, Google Meet, or Microsoft Teams integrations in Calendly. Create a cancellation recovery flow by listening to the invitee.canceled event, waiting 10 minutes, and dispatching a Twilio SMS to the cancelled invitee with a rebooking link extracted from the event type's scheduling_url field, allowing them to easily rebook without searching for the original booking link. Extend the integration to manage internal sales team workflows by sending a separate Twilio SMS to the event host's phone from the invitee.created webhook, alerting the sales rep that a new meeting is booked, including the invitee name, company if collected as a Calendly form question, and meeting time so the rep can prepare in advance.
Conclusion
Calendly and Twilio together create a complete SMS-driven meeting lifecycle from booking confirmation through pre-meeting reminders and post-call follow-ups, significantly reducing no-show rates and improving the professionalism of your scheduling experience. Contact Telphi Consulting to build and deploy this integration for your Calendly account.
Ready to Transform Your Business Communications?
Get a free consultation with our VoIP experts and discover how we can help you save costs, improve efficiency, and scale your business.
Comments (0)
Join the discussion and share your thoughts (AI-moderated for quality)
Be the first to comment
No comments yet. Share your thoughts below.