Integrations for users
An OAuth integration acts for the signed-in user, with the scopes it requests. Meetings are scheduled as that user. Integrations
Set onlineMeetingService: "webex" on an event. Workwae schedules the meeting, writes the join link into the event, and keeps the two in step.
These points are from Webex’s developer docs, as of October 2026.
An OAuth integration acts for the signed-in user, with the scopes it requests. Meetings are scheduled as that user. Integrations
A Service App acts as a machine account in the customer’s org, so it does not depend on one user’s authorization. A Full Admin has to authorize it in Control Hub. Service Apps
A Service App gets an access and refresh token pair for its machine account, and the refresh token keeps the access token fresh. Service Apps
A user grant asks for meeting:schedules_write, meeting:schedules_read and spark:people_read. A Service App needs meeting:admin_schedule_write, meeting:admin_schedule_read and spark-admin:people_read.
The account’s own grant first, then the tenant’s Service App, hosting as the Webex user with the mailbox’s address. Register the Service App with its client secret and refresh token, then run POST /v1/meeting-apps/{appId}/test to verify it.
Webex meetings last at least 10 minutes and at most 23 hours 59 minutes, so Workwae clamps the event’s length to that range. Workwae asks Webex not to email attendees, because the calendar already sends the invitation.
Daily, weekly, monthly and yearly rules pass through. A monthly or yearly rule may carry one BYDAY, BYMONTHDAY or BYMONTH value; several are refused as meeting_recurrence_unsupported, as are RDATE and EXDATE.
One Webex Service App can host for every mailbox in the organization. Meetings are a module that every plan offers; a workspace’s owner switches it on.
const app = await workwae.meetingApps.create({
kind: "webex_service_app",
name: "Acme Webex",
clientId,
clientSecret,
refreshToken,
});
const { checks } = await workwae.meetingApps.test({
appId: app.id,
user: "priya@acme.com",
});app = workwae.meeting_apps.create(
kind="webex_service_app",
name="Acme Webex",
client_id=client_id,
client_secret=client_secret,
refresh_token=refresh_token,
)
result = workwae.meeting_apps.test(app_id=app.id, user="priya@acme.com")
checks = result.checksUse user grants when each person connects their own Webex. Use a Service App when an admin should host for everyone without per-user sign-in. A Service App applies only where the provider vouches for the mailbox address: Gmail, Microsoft 365, and IMAP accounts that signed in with Google or Microsoft.
The event is refused with meeting_host_missing. Workwae looks users up by address, which needs the people read scope.
No. It only creates, updates and deletes meetings and looks up the host.
Yes, see Zoom. Both use the same onlineMeetingService field and the same connect and reauthorization flow.
Tell us whether your customers use Webex integrations or Service Apps.