Providers

Zoom meetings that follow your calendar events.

Set onlineMeetingService: "zoom" on an event. Workwae creates the meeting, writes the join link into the event, and moves or deletes it with the event.

What Zoom requires

A Marketplace app and a host for each meeting.

These points are from Zoom’s developer docs, as of October 2026.

User-level OAuth

A user app signs the user in and gets an access token that expires after one hour, with a refresh token to renew it. Meetings are hosted by that user. Zoom OAuth

Server-to-Server OAuth

An internal app for one account uses the account_credentials grant. Its token lives one hour and there is no refresh token, so the app asks again. Server-to-Server OAuth

Scopes in the app

Zoom takes granular scopes from the app’s Marketplace configuration, not from the request. An administrator authorizes what a server app may use. Server-to-Server OAuth

Rate limits

Limits apply per account and are shared by every app installed on it, by request type (Light, Medium, Heavy) and plan. Rate limits

What Workwae does

Meeting lifecycle tied to the event.

Create, move, delete

A new event with the field creates a meeting and sets onlineMeetingUrl. A new subject, start, end or rule moves the meeting. Deleting or cancelling the event deletes it. This works on Google, Microsoft 365 and CalDAV accounts.

Three ways to host

A user grant through Workwae’s Zoom app, a user grant through your own Zoom OAuth app, or a Server-to-Server app that hosts for every mailbox in the organization as the Zoom user with the mailbox’s address. A grant is tried first, then the server app.

Recurring series

A series gets a recurring meeting. Zoom repeats daily, weekly on chosen weekdays, or monthly on a day or one weekday, up to 60 times, with an interval of at most 99 days, 50 weeks or 10 months. Other rules are refused as meeting_recurrence_unsupported before anything is created.

Reauthorization

A refused call is retried once with a fresh token. If it is refused again, the grant is marked reauth_required and a meeting_connection.reauth_required webhook names the host. Mail and calendar sync keep running. A user who removes the app in the Zoom Marketplace has their grants deleted.

SDK

Connect a user, then create the event.

A connect session returns a hosted page where the user signs in at Zoom. Meetings are a module that every plan offers; a workspace’s owner switches it on.

zoom.tszoom.py
const { url } = await workwae.meetingConnectSessions.create({
  accountId,
  service: "zoom",
  redirectUri: "https://app.example.com/settings/meetings",
  state: "user-42",
});

const event = await workwae.calendarEvents.create({
  accountId,
  calendarId,
  subject: "Customer onboarding",
  start: { dateTime: "2026-11-03T15:00:00", timeZone: "America/Chicago" },
  end: { dateTime: "2026-11-03T15:45:00", timeZone: "America/Chicago" },
  onlineMeetingService: "zoom",
});
event.onlineMeetingUrl; // the Zoom join link
from datetime import datetime

session = workwae.meeting_connect_sessions.create(
    account_id=account_id,
    service="zoom",
    redirect_uri="https://app.example.com/settings/meetings",
    state="user-42",
)
url = session.url

event = workwae.calendar_events.create(
    account_id=account_id,
    calendar_id=calendar_id,
    subject="Customer onboarding",
    start={"date_time": datetime(2026, 11, 3, 15, 0), "time_zone": "America/Chicago"},
    end={"date_time": datetime(2026, 11, 3, 15, 45), "time_zone": "America/Chicago"},
    online_meeting_service="zoom",
)
event.online_meeting_url  # the Zoom join link
FAQ

Questions teams ask.

Does Workwae read recordings or participants?

No. It only creates, updates and deletes meetings and looks up the host. It never reads recordings, chat, transcripts or participant lists.

What if the mailbox has no Zoom user?

A server app needs a Zoom user with the mailbox’s address. Without one the event is refused with meeting_host_missing. A server app is used only where the provider vouches for the address, so a password IMAP account needs its user’s own grant.

Can an event have both a Teams or Meet link and Zoom?

No. Only one of onlineMeeting, onlineMeetingUrl and onlineMeetingService may be set, or the call answers multiple_meeting_options.

Does deleting the app delete meetings?

No. Disconnecting a grant or removing a server app leaves existing meetings and their links on the events.

Early access

Add video links without running a Zoom integration.

Tell us whether your users sign in to Zoom themselves or an admin hosts for them.