Skip to main content

Direct Google Calendar connection · 8 min read

How to send automated review requests after Google Calendar appointments

Written by , Founder & Lead Developer at EmbedMyReviews. LinkedInPublished

Use EMR’s Google Calendar automation to add eligible event guests in a review campaign after an appointment ends. Connect the calendar, set timing and filters, preview the matches, then activate. The customer’s email must be an event guest, not just a name typed into the title.

TL;DR

The short version

  • Use a dedicated customer appointment calendar and add the customer as a guest.
  • Exclude internal email domains and skip all-day events.
  • Leave Process appointments that already ended off for the first setup, then use the preview before activation.

What happens automatically?

  1. 01

    A customer appointment ends

  2. 02

    EMR filters the event and its guests

  3. 03

    Your campaign sends the invitation

Choose this when: A consultant, appointment business or service team already keeps genuine customer appointments in Google Calendar.

Choose another route when: A diary that only says “Sarah, 2 pm” without a guest email, or a workflow that needs confirmed attendance rather than a scheduled end time.

Who does what?

The business owner

Shares the chosen calendar with the connected Google account and keeps guest emails, event times and cancellations accurate.

You, the agency

Connects Google, selects the campaign, sets filters and timing, checks the preview and verifies delivery.

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 ask customers for reviews after appointments in your Google Calendar. Please share the appointment calendar with the Google account we agree, and make sure each customer is an invited guest with an email address. I will select the calendar, exclude staff meetings and test the review campaign. Your team keeps using the calendar as usual.”

Once it is connected

Staff keep using the selected calendar and invite the customer’s email to each appointment. They update cancellations and keep internal meetings separate. You monitor the automation. Calendar timing alone cannot confirm that someone attended.

Have these ready

  • A customer calendar accessible to the Google account used in EMR.
  • Customer email addresses added as event guests. The connection processes eligible guests, not names in the event description.
  • An email campaign and a unique test guest you control.
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 API key or code is needed. You sign in with Google and choose the appointment calendar and filters. EMR reads the event’s guest email and timing, then starts the review campaign.

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

Google access, filters and a preview. Work through this together the first time.

  1. Business owner

    Prepare a calendar that represents actual appointments

    In Google Calendar on a computer, open the calendar’s menu → Settings and sharing → Shared with → Add people and groups (older screens call this Share with specific people or groups). Add the Google account you will connect in EMR and allow See event details or See all event details. Click Send. In that Google account, open the sharing email and click its link to add the calendar.

    Prefer a dedicated customer calendar. Add a short future test appointment and invite your own test email as a guest.

    Use a consistent title keyword such as Service if you need filtering. Keep internal meetings out and cancel appointments that will not happen.

    Before moving on: The test event has a start, an end and an actual guest email.

  2. Agency

    Connect Google and select the calendar

    Open the client dashboard from your agency and select the location. Go to Connect → Integrations → Automations and click Connect Google Calendar. If the card shows a Manage button, open that instead.

    Sign in with the Google account that can see the calendar and approve access. On the Calendar page, click Connect First Calendar, or New Automation if one exists. Choose the campaign and calendar, and confirm the calendar timezone.

    Before moving on: The wizard shows the intended calendar rather than someone’s personal diary.

  3. Agency

    Choose timing and appointment filters

    Choose after-end timing, a custom delay, or the next morning. For an appointment already completed, a one-hour delay is a useful starting example.

    Set a sensible minimum duration, keep Skip all-day events on, and enter optional inclusion keywords separated by commas. A keyword filter narrows titles; it does not confirm attendance.

    Before moving on: A normal customer appointment passes the filters; a staff all-day event does not.

  4. Together

    Exclude staff and prevent an accidental historical send

    Enter the business’s internal email domains under Excluded email domains. Keep Skip duplicate invites on to avoid multiple calendar invites to the same person on the same day.

    Leave Process appointments that already ended off for this initial launch. Enabling it can include recent past appointments, with a look-back up to 72 hours. Also review the campaign’s separate duplicate window.

    Before moving on: Staff and historical appointments are outside the launch test.

  5. Agency

    Preview the matches before activating

    At Review & Activate, inspect Total Events, Will Send, Will Skip and the sample appointments. Check every unexpected match before proceeding.

    Click Activate Automation, let the future test event end and inspect the connection and campaign activity. Confirm the actual email and review link.

    Before moving on: The preview is sensible and a real test invitation arrives after the event.

Example: a consultant finishes a client session at 4 pm

The session ends at 4 pm and includes the client as a Google Calendar guest. EMR’s one-hour delay plans to add the customer to the campaign after 5 pm, subject to sync and campaign rules. A name typed into the title without an invited email gives EMR nobody to contact.

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 → Google Calendar and view this automation. Check Recent Activity and its scheduled invites; use View details for the contact where shown. Confirm the message under Grow → Campaigns → Invites and in your own inbox.

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: Preview a future customer event with your test email as guest.

Expected result: It appears among eligible appointments. After activation and its end time, confirm the campaign email arrives.

Test 2: Preview an all-day event or one with only an excluded internal guest.

Expected result: It is skipped under the configured rules. No review invitation should reach staff.

Test 3: Cancel another test event while its request is still Scheduled in the automation and allow the change to sync.

Expected result: The pending automation request is cancelled. Check Recent Activity before relying on it; a last-second cancellation may not have synced yet, and it cannot withdraw a contact already passed to the campaign.

If something does not work

No eligible attendees

Add the customer as a guest with a real email address. Check exclusions and the event organiser; an appointment title is not a contact record.

Too many events appear in the preview

Use a dedicated calendar, tighten the title keyword or duration rule and exclude staff domains. Do this before activation.

No-shows still receive invitations

Calendar end time does not establish attendance. Keep cancellations current or use HighLevel’s Only when marked Showed rule when attendance confirmation is required.

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 automation bridge is needed. Keep any Google Workspace subscription, EMR and message delivery in the budget. Adding Calendar solely to duplicate an existing native booking integration may add unnecessary work.

Reliability: EMR syncs calendar events and excludes cancellations it receives before the request is handed to the campaign. Filters can exclude unsuitable titles, short events and staff domains, but they cannot prove attendance. Keep guest lists and cancellations up to date.

When to use something else: Use Calendly directly if its booking scope already matches the eligible appointments. Use HighLevel for explicit attendance status, or a staff completion form when no calendar reliably represents the finished job.

Common questions

Need help with a setting?