Skip to main content

Direct Calendly connection · 8 min read

How to send review requests after Calendly meetings

Written by , Founder & Lead Developer at EmbedMyReviews. LinkedInPublished

Connect Calendly directly to EMR so new bookings schedule a review request relative to the meeting’s end. EMR creates the webhook subscription and cancels a pending request when it receives a booking cancellation. Choose this when the selected Calendly user’s bookings are suitable customer experiences.

TL;DR

The short version

  • A booking starts the automation, but the request is timed from the meeting end.
  • Calendly webhook access needs an eligible paid plan, such as Standard, Teams or Enterprise.
  • The native connection has no event-type filter and no no-show detection. Use a different route when attendance must be confirmed.

What happens automatically?

  1. 01

    A new Calendly booking arrives

  2. 02

    EMR schedules from the meeting end

  3. 03

    The campaign invites the attendee

Choose this when: Paid consultations, completed coaching sessions and other appointments where every booking in the chosen scope is eligible.

Choose another route when: A calendar mixing introductory sales calls with paid services, or a team that must ask only after confirmed attendance.

Who does what?

The business owner

Creates a Calendly personal access token and decides whether one user or the whole organisation should be connected.

You, the agency

Sets the scope and campaign, checks timing, tests a new booking and cancellation, and reviews activity.

Set up EMR Automations while signed in as the agency owner and working in the intended client location. The business owner handles access to their own software. They do not need your agency login or a daily EMR task.

A message you can send the business owner
“We can schedule a review request for after your Calendly meetings. You will create a connection token and we will agree which Calendly user’s bookings to include. I will connect the campaign and test a booking and a cancellation. If you need to exclude no-shows or particular meeting types, we will choose a workflow that can check those first.”

Once it is connected

The owner continues taking bookings in Calendly. New bookings in the selected user or organisation schedule requests around the meeting end. Cancel appointments that will not happen; simply leaving a no-show on the calendar will not stop its request.

Have these ready

  • A Calendly plan with webhook access and an owner/admin token if connecting the whole organisation.
  • A campaign with a working sender and your own contact for testing.
  • A booking form that collects an email. For SMS, also collect a usable phone through the SMS reminder field or a phone-type question.
First client? Prepare the review campaign first

From your agency, open Business → Customers → Manage Customers → Open dashboard (or the Customer tab if shown). Select the business location you are setting up.

A campaign is the review message and any follow-ups you want EMR to send. A feedback form controls where the customer is invited to leave their review.

Use Grow → Review Tools → Feedback Forms to prepare the customer’s review destination, then Grow → Campaigns → Request Reviews to create the campaign. Choose its feedback form, message and working sender. Start with one email step for this walkthrough. Add your own test contact through Grow → Campaigns → Invites and verify the message and link.

Set the campaign’s sending window and duplicate-request window. Honour opt-outs. For Google review campaigns, ask eligible customers consistently, leave review gating off and offer no incentives.

Campaign sending rules and setup reference →

Do I need to understand APIs or write code?

No coding is needed for this route. You enter the business’s connection details into EMR’s built-in setup wizard. EMR handles the API calls. Your work is choosing settings and copying the connection credential; you do not write code or build a Zap.

A key or token is a private connection credential. A webhook is an automatic notice that something happened, such as a payment completing. Keep connection credentials private; the business owner does not need to share their everyday login password.

The walkthrough

Set it up, step by step

Token and a short setup wizard. Work through this together the first time.

  1. Business owner

    Create a Calendly personal access token

    In Calendly, open the Profile menu → Developer → Personal access tokens. Accounts still on the earlier menu use Integrations → API and webhooks.

    Create a token named for this connection. Select users:read, scheduled_events:read and webhooks:write. Complete the email verification if prompted, then copy the token securely. These permissions cover EMR’s user check and booking webhook subscription.

    Before moving on: You have a saved token with the required permissions and an eligible Calendly plan.

  2. Agency

    Open Calendly in the client’s Automations

    From your agency account, open the client dashboard and select the correct location. Go to Connect → Integrations → Automations. On the Calendly card, click Connect Calendly. If it already shows Manage Calendly, open that and choose New Integration.

    Paste the token. Choose Only my calendar for that Calendly user, or My whole Calendly organization with an owner/admin token.

    Before moving on: The scope includes only bookings that should receive this campaign.

  3. Agency

    Choose the campaign and meeting-end timing

    Select the branded campaign. Choose a delay up to 24 hours after the meeting ends, or The next morning with the intended timezone.

    For a completed consultation, one hour after the meeting is a sensible starting point. Do not treat the booking confirmation as the review moment.

    Before moving on: The request is timed from the end of the meeting, not when the customer booked.

  4. Together

    Activate, then make a fresh test booking

    Click Activate Integration. EMR creates the Calendly webhook subscription for you.

    Book a new short appointment using your own email after activation. Check the scheduled request, let the meeting finish and verify delivery. Use a second booking to test cancellation while its request is still Scheduled in EMR.

    Before moving on: Both the completed-booking and cancelled-booking tests behave as expected.

Example: a consultation booked on Monday for Thursday

The customer books on Monday. Their consultation ends on Thursday at 2 pm. With a one-hour delay, EMR schedules the campaign for Thursday at 3 pm. If EMR receives the cancellation while the booking is still scheduled in the automation, that pending request is cancelled. Simply not turning up does not.

How to know it is working

Follow the event all the way to a message you receive. A green connection or a successful test response is only part of that journey.

Where to look: Open Automations → Calendly, click the connection name and check Recent bookings. Find the new test booking and scheduled time, then check its contact under Grow → Campaigns → Invites and confirm receipt. In the automation’s activity, Sent means the contact was passed to the campaign; the inbox check confirms the message actually arrived.

When to expect the message: Set the first-request delay here in the automation. EMR does not add the campaign’s first-step delay on top, but its allowed sending hours still apply. For example, a request due at 8 pm waits if the campaign only sends between 9 am and 6 pm. Follow-up timing stays in the campaign.

Testing again? Use another email address you control for a second successful-send test. Reusing the first address can correctly trigger your duplicate-request rule. Keep that protection on for real customers.

Test 1: Make a new booking after activation using your own email.

Expected result: It appears in EMR activity with timing based on the meeting end. Confirm the actual campaign message after the scheduled time.

Test 2: Create a second booking and cancel it while its request is still Scheduled in EMR.

Expected result: The pending request is cancelled and no message arrives for that booking.

Test 3: Review the chosen user or organisation’s event types.

Expected result: Every included event is a suitable review opportunity. If free discovery calls are mixed in, choose another route with filtering.

If something does not work

Calendly refuses the connection

Check the token permissions, webhook plan access and owner/admin rights for organisation scope. Do not upgrade the plan before checking the actual error.

An old booking never appears

Use a new booking made after activation for the end-to-end test. Do not assume the connection imports all historical appointments.

A no-show gets invited

This connection has no no-show detection. Use an attendance-aware HighLevel setup or a completed-job workflow if confirmation is essential.

At handover, record the connection name, source account, client location, campaign, timing, test result and person responsible for failures. Test again after changing the workflow. Keep passwords, API keys and private webhook URLs out of the handover notes.

Cost, reliability and the simpler alternatives

Cost: No external bridge subscription. Budget for an eligible Calendly paid plan, EMR and message delivery. Check the client’s current plan before creating the token.

Reliability: A cancellation received while the booking is still scheduled in this automation stops that pending request. It cannot withdraw a contact already passed to the campaign. Calendly no-shows are not detected by this connection: if the booking remains, reaching its end time is enough.

When to use something else: Google Calendar provides keyword, duration and internal-domain filters when the event contains real guest emails. HighLevel is a better fit when staff actively mark attendance. A bridge is justified when you need event-type or other source-specific filtering.

Common questions

Need help with a setting?