How to Set Up Virtual Consultations with Auto-Generated Google Meet Links
Customers pick "virtual" on your booking page. Botline calls Google Calendar, generates a Meet link, and ships it on WhatsApp.
What you get
Service-based businesses increasingly run hybrid: some sessions in-person, some over video. Botline lets you offer both from the same booking page without two separate setups. Per-service you pick the allowed modes — in-person only, virtual only, or customer chooses. When the customer picks virtual, Botline calls the Google Calendar API to create the event AND generates a Meet link via conferenceDataVersion=1 — the same flow Calendar uses internally.
The link lands in:
- The customer's WhatsApp confirmation message.
- The 24-hour reminder.
- The 2-hour reminder.
- The 15-minute "join now" reminder (new in v5.2.116).
- The Google Calendar event invite both sides receive by email.
No copy-pasting. No "wait, where's the link?" five minutes before the call.
Step 1 — Connect Google Calendar
- Open Settings → Integrations → Google Calendar.
- Click Connect Google Calendar. You'll be redirected to Google's OAuth consent screen.
- Sign in with the Google account whose calendar you want bookings to land on (typically your business email).
- Grant Manage events permission. Botline does NOT request read access to your existing events — it can only create / update events it owns.
- You'll be returned to the dashboard with a green Connected badge.
Tip: if you have a shared "Bookings" calendar separate from your personal one, switch to that account before connecting. The integration writes to the primary calendar of whichever account you connected.
Step 2 — Mark services as virtual-capable
Each service can independently be in-person, virtual, or hybrid. The picker lives in the service editor:
Virtual sessions can have a different duration and price than in-person — many tenants charge less for virtual since there's no room overhead. The booking page renders both options and lets the customer pick at submit time.
Step 3 — Test with one booking
- Open your booking page in an incognito window.
- Pick a virtual-enabled service.
- Choose Virtual when prompted.
- Enter your own phone number and email, submit.
- Confirm the WhatsApp YES (or click Confirm now in dashboard if you're in Manual mode).
Within ~5 seconds you should see:
- An event in your Google Calendar with a Meet link in the location field.
- A WhatsApp message to your phone containing the Meet URL.
- A Google Calendar invite email with the same link.
If any of these are missing, check Settings → Integrations → Google Calendar for a red error chip — usually it means the OAuth scope expired (re-connect) or your Calendar account hit a quota (rare).
Step 4 — Customize the WhatsApp message templates
Each reminder type has its own template under Settings → Templates. The virtual template includes a {{meetLink}} placeholder — keep it in there. The 15-minute reminder also includes Click to join 👉 language by default; you can soften this for less-tech-comfortable audiences (e.g. clinic patients).
The dashboard shows a 🎥 Up Next — Virtual sticky panel on the appointments page when a virtual session is starting in <60 minutes, with a one-click Join Call button for you. No need to dig through the calendar.
Best practices
- Match the price to the value. If virtual is materially shorter or simpler, charge less and say so on the booking page. Customers respond to fair pricing.
- Set a buffer. Add a 10-15 minute buffer between consecutive virtual sessions in your service settings. Back-to-back Meet calls always need a coffee break.
- Test the 15-min reminder. The "join now" reminder is the highest-impact message in the chain — verify it lands on time on a clean test number.
- Pair with deposits. Virtual sessions have a higher no-show rate than in-person. Soft 24h confirm + a small deposit (PKR 500-1000 / AED 50) drops no-shows to near zero.
- Don't charge separately for the link. The Meet link is automatic and free; framing it as a feature ("includes secure video link") is fine, but don't add a line-item charge for it.