Online classes work end-to-end without you copy-pasting Zoom links into emails. Connect a video provider once, mark the class as online, and the platform mints a join link on each booking and emails it to the student.
Pro / Premium plan required plus at least one connected provider (Google Calendar or Zoom).
Step 1: connect a provider
Go to Connections in the sidebar.
- Google Calendar: OAuth in 30 seconds. We use your calendar API to create a Google Meet link per booking and to read your free/busy.
- Zoom: OAuth via the Zoom Marketplace. We mint a Zoom meeting per booking on your account.
- Apple Calendar (CalDAV): read-only sync of your free/busy. Apple Calendar can't mint meeting links, so it doesn't unlock online classes by itself — it's a complement to Google or Zoom.
You can connect both Google and Zoom; the wizard lets you pick per class which one to use.
Step 2: create the class with the online format
On Classes, the Create class button opens a small split-menu:
- In-person: the legacy flow with a Google Places location picker.
- Online: skips the location section entirely. The wizard reads
?format=onlineand routes the create request to the API withisOnline: true.
The wizard auto-resolves the meeting provider:
- Only Google connected → defaults to Google Meet.
- Only Zoom connected → defaults to Zoom.
- Both connected → the per-class picker shows up; you choose.
- Neither connected → the API rejects with a clear error pointing you to /mentor/settings/connections.
Step 3: bookings auto-mint join links
When a booker confirms an online-class booking, the Stripe webhook fires:
- The booking flips to CONFIRMED.
- We call the connected provider's API to create a meeting (Google Meet via Calendar API, or a Zoom meeting via the Zoom API).
- The join URL + calendar event id are stored on the booking.
- The confirmation email includes the join link.
The student also sees the link on their booking confirmation page.
Cancellation
When you (or the booker) cancel an online booking, we call the provider's API to cancel the meeting and clear the booking's meetingUrl. The student gets a cancellation email.
Privacy note
The meeting metadata (event id, join URL) is stored on your booking row. The platform doesn't store the meeting contents — those live on Google / Zoom only.