Meetings Overview
The new Webex Meetings REST API enables seamless integration of Webex Meetings into your websites, apps, and services. Schedule meetings, invite meeting attendees, update preferences, and more.
XML API Deprecation Announcement
The Meetings-related XML APIs will be deprecated and the End-of-Support (EoS) date is planned for the second half of 2023. Cisco will continue to resolve bugs up to this date, but new features will only be implemented for the REST APIs suite. The End-of-life (EoL) timeframe for Meetings-related XML APIs is targeted for March 31, 2024, at which time the APIs will be retired. For more information on how to migrate from XML to REST APIs, please see the Webex Meetings XML to REST Migration Guide. User management APIs such as CreateUser
, SetUser
, DelUser
, etc. are NOT affected by this EOL announcement.
anchorWebex Meetings
anchorWebex Meetings offers integrated audio, video, and content sharing with highly secure web meetings from the cloud. The Webex Meetings REST API allows developers to add basic Webex scheduling functionality to their custom applications or websites. You can:
- Create and manage meetings
- Add and manage meeting invitees
- Get and update meeting preferences, options, and other details
- Get, list, and delete recordings
More APIs are on the way! Watch our blog for announcements.
anchorCreating and Using Webex Apps
anchorThe base URL for the Webex REST API is https://webexapis.com/v1/. Detailed information about each API resource and endpoint can be found in the API Reference.
The Meetings-related APIs can be used with Webex Integrations. If you aren't familiar with integrations, check out the Integrations Guide for more information. To create a new integration, select My Webex Apps from the menu under your avatar at the top of this page to get started.
To use the Webex REST API you'll need to be a Webex Meetings subscriber with a Webex account backed by Cisco Webex Common Identity (CI). If you currently use Webex, your account is backed by Common Identity. If you're using only Webex Meetings, your site will need to be on Common Identity.
anchorMeetings API Scopes
anchorThe table below lists all meetings APIs and their required scopes at different levels.
Resource | API | User Level Scopes | Admin/Org Level Scopes | Compliance Officer Level Scopes |
---|---|---|---|---|
Meetings | List Meetings of a Meeting Series | meeting:schedules_read | meeting:admin_schedule_read | N/A |
Create a Meeting | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Get a Meeting | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
List Meetings | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Update a Meeting | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Delete a Meeting | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Join a Meeting | meeting:schedules_read | N/A | N/A | |
Get Meeting Control Status | meeting:controls_read | N/A | N/A | |
Update Meeting Control Status | meeting:controls_write | N/A | N/A | |
Get registration form for a meeting | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Get Detailed Information for a Meeting Registrant | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
List Meeting Registrants | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Batch Update Meeting Registrants status | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Register a Meeting Registrant | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
List Meeting Session Types | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Get a Meeting Session Type | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Reassign Meetings to a New Host | N/A | meeting:admin_schedule_write | N/A | |
Meeting Invitees | List Meeting Invitees | meeting:schedules_read | meeting:admin_schedule_read | N/A |
Create a Meeting Invitee | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Create Meeting Invitees | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Get a Meeting Invitee | meeting:schedules_read | meeting:admin_schedule_read | N/A | |
Update a Meeting Invitee | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Delete a Meeting Invitee | meeting:schedules_write | meeting:admin_schedule_write | N/A | |
Meeting Participants | List Meeting Participants | meeting:participants_read | meeting:admin_participants_read | spark-compliance:meetings_read |
Get Meeting Participant Details | meeting:participants_read | meeting:admin_participants_read | spark-compliance:meetings_read | |
Update a Participant | meeting:participants_write | N/A | N/A | |
Admit Participants | meeting:participants_write | N/A | N/A | |
Recordings | List Recordings | meeting:recordings_read | meeting:admin_recordings_read | spark-compliance:meetings_read |
List Recordings For an Admin or Compliance Officer | N/A | meeting:admin_recordings_read | spark-compliance:meetings_read | |
Get Recording Details | meeting:recordings_read | meeting:admin_recordings_read | spark-compliance:meetings_read | |
Delete a Recording | meeting:recordings_write | meeting:admin_recordings_write | spark-compliance:meetings_write | |
Move Recordings into the Recycle Bin | meeting:recordings_write | meeting:admin_recordings_write | N/A | |
Restore Recordings from Recycle Bin | meeting:recordings_write | meeting:admin_recordings_write | N/A | |
Purge Recordings from Recycle Bin | meeting:recordings_write | meeting:admin_recordings_write | N/A | |
Recording Reports | List of Recording Audit Report Summaries | meeting:recordings_read | meeting:admin_recordings_read | spark-compliance:meetings_read |
Get Recording Audit Report Details | meeting:recordings_read | meeting:admin_recordings_read | spark-compliance:meetings_read | |
List Meeting Archive Summaries | N/A | meeting:admin_recordings_read | N/A | |
Get Meeting Archive Details | N/A | meeting:admin_recordings_read | N/A | |
Meeting Transcripts | List Meeting Transcripts | meeting:transcripts_read meeting:schedules_read | meeting:admin_transcripts_read | spark-compliance:meeting_transcripts_read spark-compliance:meetings_read |
Download a meeting transcript | meeting:transcripts_read meeting:schedules_read | meeting:admin_transcripts_read | spark-compliance:meeting_transcripts_read spark-compliance:meetings_read | |
List Snippets of a Meeting Transcript | meeting:transcripts_read | N/A | spark-compliance:meeting_transcripts_read spark-compliance:meetings_read | |
Get a Transcript Snippet | meeting:transcripts_read | N/A | spark-compliance:meeting_transcripts_read spark-compliance:meetings_read | |
Update a Transcript Snippet | meeting:transcripts_write | N/A | spark-compliance:meeting_transcripts_write spark-compliance:meetings_write | |
Meeting Preferences | Get Meeting Preference Details | meeting:preferences_read | meeting:admin_preferences_read | N/A |
Get Personal Meeting Room Options | meeting:preferences_read | meeting:admin_preferences_read | N/A | |
Update Personal Meeting Room Options | meeting:preferences_write | meeting:admin_preferences_write | N/A | |
Get Audio Options | meeting:preferences_read | meeting:admin_preferences_read | N/A | |
Update Audio Options | meeting:preferences_write | meeting:admin_preferences_write | N/A | |
Get Video Options | meeting:preferences_read | meeting:admin_preferences_read | N/A | |
Update Video Options | meeting:preferences_write | meeting:admin_preferences_write | N/A | |
Get Scheduling Options | meeting:preferences_read | meeting:admin_preferences_read | N/A | |
Update Scheduling Options | meeting:preferences_write | meeting:admin_preferences_write | N/A | |
Get Site List | meeting:preferences_read | meeting:admin_preferences_read | N/A | |
Update Default Site | meeting:preferences_write | meeting:admin_preferences_write | N/A | |
Batch Refresh Personal Meeting Room ID | N/A | meeting:admin_preferences_write meeting:admin_config_write | N/A | |
Meeting Reports | List Meeting Usage Reports | N/A | meeting:admin_config_read | N/A |
List Meeting Attendee Reports | meeting:participants_read meeting:schedules_read | meeting:admin_config_read | N/A |
Guest users can interact with regular Webex users via tokens generated by a Guest Issuer application. The table below lists the meetings APIs for guest issuer and the required scopes.
Resource | API | Guest Issuer Scopes |
---|---|---|
Meetings | Get Detailed Information for a Meeting Registrant | webex-squared:locus_participant spark:all |
List Meeting Registrants | webex-squared:locus_participant spark:all | |
Batch Update Meeting Registrants status | webex-squared:locus_participant spark:all | |
Register a Meeting Registrant | webex-squared:locus_participant spark:all | |
Join a Meeting | webex-squared:locus_participant |
anchorUser Level Authentication and Scopes
anchorWebex REST API authentication is described in detail in the Integrations Guide. The following scopes are required to use the Meetings-related API resources:
Remember, when choosing scopes for your app, only select the scopes your application will need.
anchorAdmin/Organization Level Authentication and Scopes
anchorWebex developers now have the ability to leverage admin level scopes in their integrations. These new scopes allow WebEx Admin grant scopes to integrations on behalf of other users. This allows developers and admins flexibility in creating integrations to meet their needs and can lessen the need for individual users of an integration to perform an OAuth grant.
Several conditions and restrictions apply to organizations that want to authorize an integration that utilizes these admin level scopes.
- The admin that authorizes the integration for an organization (meeting:admin_* scopes) must be a full org admin. This admin must also be a site admin for the site or sites that contain the users they wish the integration to be able to act on behalf of.
- Partners: Partner admins who are also full org admins for their own org are not permitted to authorize integrations that use these admin level scopes for their customer's org. They are however able to authorize these types of integrations in their own org as per the previous requirement.
In support of this functionality the admin must grant the integration the following admin scopes:
In support of this feature, the following will be allowed as query parameters on GET requests and as valid attributes in the request body of POST and PUT commands:
hostEmail
- When set as a query parameter on a GET request made by an admin, the response will be the meetings where the user ofhostEmail
is the meeting host or an invitee, not the meetings for the admin user. When set as part of the request body sent to a POST method by an admin, the specified user will be the host of the meeting if he belongs to a site managed by the admin user. When set as part of the request body sent to a PUT or PATCH method, the field is not editable and is only used to update or patch a meeting on behalf of the real meeting host. Please use the Reassign Meetings to a New Host API if you need to update the meeting host. The meeting will belong to the specified host's default site unless thesiteUrl
attribute is used to override this.siteUrl
- optional - When set as a query parameter on a GET request, the response will be restricted to the meetings that belong to the specified site that are hosted by the caller of the API, or by the user specified via thehostEmail
parameter. When set as part of the request body sent to a POST or PUT method, this attribute allows the caller of the API to create a meeting in a non-preferred site for a host whose account is associated with multiple sites.
Developers can become aware of the allowable values for siteUrl
by querying the GET /meetingPreferences/sites API.
anchorCompliance Officer Level Authentication and Scopes
anchorAn administrator user can be associated with a specific role to become a Compliance Officer. The role of a compliance officer is to ensure that a company is conducting its business in full compliance with all laws and regulations that pertain to its particular industry, as well as professional standards, accepted business practices, and internal standards. The following scopes are required to use the Meetings-related API resources as a Compliance Officer:
anchorScopes and User Roles
anchorThe table below lists the relationship between scopes and user roles.
Scope | Role |
---|---|
meeting:admin_schedule_read meeting:admin_schedule_write meeting:admin_recordings_read meeting:admin_recordings_write meeting:admin_transcripts_read meeting:admin_preferences_read meeting:admin_preferences_write meeting:admin_participants_read | Full admin Content admin |
meeting:admin_config_read meeting:admin_config_write | Site admin |
spark-compliance:meetings_read spark-compliance:meetings_write | Compliance officer |
meeting:schedules_read meeting:schedules_write meeting:recordings_read meeting:recordings_write meeting:transcripts_read meeting:transcripts_write meeting:preferences_read meeting:preferences_write meeting:participants_read meeting:participants_write meeting:controls_read meeting:controls_write | Individual user |
webex-squared:locus_participant spark:all | Guest Issuer |
anchorMeeting Series, Scheduled Meetings, and Meeting Instances
anchorWhen using the Meetings and Meeting Invitees API resources, it's important to understand the difference between "meeting series", "scheduled meetings", and "meetings" objects. Each of these objects may be sent to or received from the API. To differentiate them, the value of the meetingType
attribute in the object will be one of:
meetingSeries
– a container object that includes all of the scheduling information for a meetingscheduledMeeting
– an object that represents the information associated with the scheduling information associated with a single instance of a meeting; a scheduledMeeting object can be thought of as a “child” of a meetingSeries objectmeeting
– an object that represents a meeting that is currently happening or has happened in the past; this object is created only when a meeting starts
Both meeting series and scheduled meetings may be used with the API. For example, to invite an attendee to the series, use the ID of the meeting series with the Create a Meeting Invitee endpoint. Or, to invite someone to just one scheduled instance of a meeting, use the ID of the scheduled meeting instead.
anchorMeeting States
anchorDifferent meeting states are available for each type of meeting object. See "Meeting Series, Scheduled Meetings, and Meeting Instances" above for more detail.
Meeting Series
active
– one or more future scheduled meetings exists for this seriesinProgress
– an instance of this meeting is happening now or someone has joined meeting before the host and is waiting in the lobbyexpired
– all scheduled instances of this meeting have passed
Scheduled Meeting
scheduled
– this meeting is scheduled in the futureready
– this meeting is ready to startended
– this meeting was started and is now overmissed
– this meeting was scheduled in the past but never happened
Meeting
lobby
– a locked meeting has been joined by participants, but no hosts have joinedinProgress
– the meeting has been joined and unlockedended
– a meeting has concluded
anchorAvailable Meeting Attributes for Different Meeting States
anchorThe table below lists which meeting attributes are available for different meeting states when the meeting type is meetingSeries
.
Attributes | state=active | state=inProgress | state=expired |
---|---|---|---|
id | Yes | Yes | Yes |
meetingNumber | Yes | Yes | Yes |
title | Yes | Yes | Yes |
agenda | Yes | Yes | Yes |
password | Yes | Yes | Yes |
phoneAndVideoSystemPassword | Yes | Yes | Yes |
meetingType | Yes | Yes | Yes |
state | Yes | Yes | Yes |
isModified | No | No | No |
timezone | Yes | Yes | Yes |
start | Yes | Yes | Yes |
end | Yes | Yes | Yes |
recurrence | Yes | Yes | Yes |
hostUserId | Yes | Yes | Yes |
hostDisplayName | Yes | Yes | Yes |
hostEmail | Yes | Yes | Yes |
hostKey | Yes | Yes | Yes |
siteUrl | Yes | Yes | Yes |
webLink | Yes | Yes | Yes |
sipAddress | Yes | Yes | Yes |
dialInIpAddress | Yes | Yes | Yes |
enabledAutoRecordMeeting | Yes | Yes | Yes |
allowAnyUserToBeCoHost | Yes | Yes | Yes |
enabledJoinBeforeHost | Yes | Yes | Yes |
enableConnectAudioBeforeHost | Yes | Yes | Yes |
joinBeforeHostMinutes | Yes | Yes | Yes |
excludePassword | Yes | Yes | Yes |
publicMeeting | Yes | Yes | Yes |
reminderTime | Yes | Yes | Yes |
unlockedMeetingJoinSecurity | Yes | Yes | Yes |
enableAutomaticLock | Yes | Yes | Yes |
automaticLockMinutes | Yes | Yes | Yes |
allowFirstUserToBeCoHost | Yes | Yes | Yes |
allowAuthenticatedDevices | Yes | Yes | Yes |
telephony | Yes | Yes | Yes |
meetingOptions | Yes | Yes | Yes |
attendeePrivileges | Yes | Yes | Yes |
registration | Yes | Yes | No |
integrationTags | Yes | Yes | Yes |
scheduledType | Yes | Yes | Yes |
simultaneousInterpretation | Yes | Yes | Yes |
enabledBreakoutSessions | Yes | Yes | Yes |
links | Yes | Yes | Yes |
trackingCodes | Yes | Yes | Yes |
audioConnectionOptions | Yes | Yes | Yes |
The table below lists which meeting attributes are available for different meeting states when the meeting type is scheduledMeeting
.
Attributes | state=scheduled | state=ready | state=ended | state=missed |
---|---|---|---|---|
id | Yes | Yes | Yes | Yes |
meetingNumber | Yes | Yes | Yes | Yes |
title | Yes | Yes | Yes | Yes |
agenda | Yes | Yes | Yes | Yes |
password | Yes | Yes | Yes | Yes |
phoneAndVideoSystemPassword | Yes | Yes | Yes | Yes |
meetingType | Yes | Yes | Yes | Yes |
state | Yes | Yes | Yes | Yes |
isModified | Yes | Yes | Yes | Yes |
timezone | Yes | Yes | Yes | Yes |
start | Yes | Yes | Yes | Yes |
end | Yes | Yes | Yes | Yes |
recurrence | No | No | No | No |
hostUserId | Yes | Yes | Yes | Yes |
hostDisplayName | Yes | Yes | Yes | Yes |
hostEmail | Yes | Yes | Yes | Yes |
hostKey | Yes | Yes | Yes | Yes |
siteUrl | Yes | Yes | Yes | Yes |
webLink | Yes | Yes | Yes | Yes |
sipAddress | Yes | Yes | Yes | Yes |
dialInIpAddress | Yes | Yes | Yes | Yes |
enabledAutoRecordMeeting | Yes | Yes | Yes | Yes |
allowAnyUserToBeCoHost | Yes | Yes | Yes | Yes |
enabledJoinBeforeHost | Yes | Yes | Yes | Yes |
enableConnectAudioBeforeHost | Yes | Yes | Yes | Yes |
joinBeforeHostMinutes | Yes | Yes | Yes | Yes |
excludePassword | Yes | Yes | Yes | Yes |
publicMeeting | Yes | Yes | Yes | Yes |
reminderTime | Yes | Yes | Yes | Yes |
unlockedMeetingJoinSecurity | Yes | Yes | Yes | Yes |
enableAutomaticLock | Yes | Yes | Yes | Yes |
automaticLockMinutes | Yes | Yes | Yes | Yes |
allowFirstUserToBeCoHost | Yes | Yes | Yes | Yes |
allowAuthenticatedDevices | Yes | Yes | Yes | Yes |
telephony | Yes | Yes | Yes | Yes |
meetingOptions | Yes | Yes | Yes | Yes |
attendeePrivileges | Yes | Yes | Yes | Yes |
registration | N/A | Yes | No | No |
integrationTags | Yes | Yes | Yes | Yes |
scheduledType | Yes | Yes | Yes | Yes |
simultaneousInterpretation | Yes | Yes | Yes | Yes |
enabledBreakoutSessions | Yes | Yes | Yes | Yes |
links | Yes | Yes | Yes | Yes |
trackingCodes | Yes | Yes | Yes | Yes |
audioConnectionOptions | Yes | Yes | Yes | Yes |
The table below lists which meeting attributes are available for different meeting states when the meeting type is meeting
.
Attributes | state=lobby | state=inProgress | state=ended |
---|---|---|---|
id | Yes | Yes | Yes |
meetingNumber | Yes | Yes | No |
title | Yes | Yes | Yes |
agenda | Yes | Yes | Yes |
password | No | Yes | No |
phoneAndVideoSystemPassword | No | Yes | No |
meetingType | Yes | Yes | Yes |
state | Yes | Yes | Yes |
isModified | No | No | No |
timezone | Yes | Yes | Yes |
start | Yes | Yes | Yes |
end | No | No | Yes |
recurrence | No | No | No |
hostUserId | Yes | Yes | Yes |
hostDisplayName | Yes | Yes | Yes |
hostEmail | Yes | Yes | Yes |
hostKey | No | Yes | No |
siteUrl | Yes | Yes | Yes |
webLink | Yes | Yes | Yes |
sipAddress | No | Yes | No |
dialInIpAddress | No | Yes | No |
enabledAutoRecordMeeting | No | Yes | No |
allowAnyUserToBeCoHost | No | Yes | No |
enabledJoinBeforeHost | No | Yes | No |
enableConnectAudioBeforeHost | No | Yes | No |
joinBeforeHostMinutes | No | Yes | No |
excludePassword | No | Yes | No |
publicMeeting | No | Yes | No |
reminderTime | No | Yes | No |
unlockedMeetingJoinSecurity | No | Yes | No |
enableAutomaticLock | No | Yes | No |
automaticLockMinutes | No | Yes | No |
allowFirstUserToBeCoHost | No | Yes | No |
allowAuthenticatedDevices | No | Yes | No |
telephony | No | Yes | No |
meetingOptions | No | Yes | No |
attendeePrivileges | No | Yes | No |
registration | Yes | Yes | No |
integrationTags | Yes | Yes | Yes |
scheduledType | Yes | Yes | Yes |
simultaneousInterpretation | No | Yes | No |
enabledBreakoutSessions | No | Yes | No |
links | No | Yes | No |
trackingCodes | No | Yes | No |
audioConnectionOptions | No | Yes | No |
anchorMeeting Lifecycle
anchorMeeting Auto Delete
Auto Delete Options
There's a Delete from My Meetings when completed
option in Webex page of classic view. It's invisible in Webex page of modern view and the default value is unchecked
.
If the Delete from My Meetings when completed
option is unchecked
for a meeting, there will be a mandatory Delete after 180 days
option for the meeting.
Auto Delete Cases
If the
Delete from My Meetings when completed
option ischecked
for a non-recurring meeting, the meeting will be deleted automatically after the scheduled end time.If the
Delete from My Meetings when completed
option isunchecked
for a non-recurring meeting, the meeting will be deleted automatically 180 days after the scheduled end time.If the
Delete from My Meetings when completed
option ischecked
for a meeting series, the entire meeting series will be deleted automatically after the scheduled end time of the last scheduled meeting of the meeting series.If the
Delete from My Meetings when completed
option isunchecked
for a meeting series, the entire meeting will be deleted automatically 180 days after the scheduled end time of the last scheduled meeting of the meeting series.
Meeting Series Lifecycle
A meeting series is created.
A scheduled meeting of the meeting series is started, or someone has joined the meeting before the host and is waiting in lobby.
The ongoing scheduled meeting has ended, but it has not passed the scheduled end time of the last scheduled meeting of the meeting series, or the meeting has not yet been started and the participants which were previously waiting in lobby have left the meeting.
The ongoing scheduled meeting is ended, and it has passed the scheduled end time of the last scheduled meeting of the meeting series.
It has passed the scheduled end time of the last scheduled meeting of the meeting series.
The meeting series is deleted manually or automatically after it's been expired.
The meeting series is deleted manually.
Scheduled Meeting Lifecycle
The parent meeting series is created. Any scheduled meeting other than the first one of the meeting series is
scheduled
and it can be started in the future.The parent meeting series is created. The first scheduled meeting of the meeting series is
ready
and it can be started immediately.It has passed the scheduled end time of the previous scheduled meeting. The subsequent scheduled meeting becomes
ready
and it can be started immediately.The previous
ready
scheduled meeting has been started and ended, and it has passed its scheduled end time. This scheduled meeting becomesended
.The previous
ready
scheduled meeting has never been started, and it has passed its scheduled end time. This scheduled meeting becomesmissed
.The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally.
The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally or automatically.
The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally.
The scheduled meeting is deleted manually or it's deleted when the parent meeting series is deleted maunally or automatically.
Meeting Lifecycle
A locked meeting has been joined by participants, but no hosts have joined.
The meeting has been started and not ended yet.
The participants in lobby have been admitted to meeting.
The meeting has ended.
anchorMeeting Template Locales
anchorMeetings can be created by meeting templates. The list of meeting templates that is available for the authenticated user can be retrieved from List Meeting Templates API with different values of locale
. All the locales supported by Webex are listed below.
Language | Country/Region | Locale Name | Default Locale |
---|---|---|---|
Bulgarian | Bulgaria | bg_BG | |
Castilian Spanish | Spain | es_SP | |
Chinese (Simplified) | China | zh_CN | |
Chinese (Traditional) | Taiwan | zh_TW | |
Croatian | Croatia | hr_HR | |
Czech | Czech Republic | cs_CZ | |
Danish | Denmark | da_DK | |
Dutch | Netherlands | nl_NL | |
English | United Kingdom | en_GB | |
English | United States | en_US | Yes |
French | Canada | fr_CA | |
French | France | fr_FR | |
German | Germany | de_DE | |
Hungarian | Hungary | hu_HU | |
Italian | Italy | it_IT | |
Japanese | Japan | ja_JP | |
Korean | Korea | ko_KR | |
Norwegian | Norway | no_NO | |
Polish | Poland | pl_PL | |
Portuguese | Brazil | pt_BR | |
Romanian | Romania | ro_RO | |
Russian | Russia | ru_RU | |
Serbian | Serbia | sr_RS | |
Spanish | Mexico | es_ES | |
Swedish | Sweden | sv_SE | |
Turkish | Turkey | tr_TR |
anchorWarnings
anchorSome Meetings REST APIs have temporary restrictions due to known backend limitations, but the APIs overall will not fail. Instead, a warning message will be returned in a "Warning" response header to indicate the restrictions. In the warning message, there'll be a link pointing to here and one or multiple codes to lookup in the table below.
Code | Title | Message |
---|---|---|
1001 | Unsupported attributes on a converged site. | There's a feature gap that when creating or updating a meeting on a converged site, some of the meeting's attributes such as publicMeeting , entryAndExitTone , audioConnectionType , meetingOptions.enabledPolling , meetingOptions.enabledNote , meetingOptions.noteType and meetingOptions.enabledUCFRichMedia are not supported. Therefore, the values of these unsupported attributes in the API response may be different from those in the API request. This is a known issue for converged sites. These attributes will be supported incrementally as the gap being closed. |
anchorRestrictions on Updating a Meeting
anchorWhen updating a meeting, there are different restrictions for different meeting types. It's important for a developer to understand these restrictions to avoid confusion and handle any restriction-related errors when they occcur.
There are some general rules for updating a meeting. They are listed below.
Rule 1. start
and end
cannot be a time before the current time
This rule applies to meeting series and scheduled meeting.
When updating a meeting series or a scheduled meeting, the start
and end
in specified timezone
cannot be a time before the current time. For example, assume that the current time is 2021-05-28T14:00:00+08:00
, if update a meeting series, or a scheduled meeting with start
of 2021-05-27T14:00:00+08:00
and timezone
of Asia/Shanghai
, it will fail saying that "Parameter 'start' or 'end' is before current time". Please note that the default timezone
is UTC
if not specified explicitly.
Rule 2. Limit for duration between start
and end
This rule applies to meeting series and scheduled meeting.
Duration between start
and end
cannot be shorter than 10 minutes or longer than 24 hours.
Rule 3. Update is forbidden when an associated meeting instance is in progress
This rule applies to meeting series and scheduled meeting.
When a meeting instance is in-progress, its parent scheduled meeting and grandparent meeting series cannot be updated. In fact, when a meeting instance is in-progress, the state of the parent scheduled meeting is ready
which means that currently this scheduled meeting is ready to join, and the state of the grandparent meeting series is inProgress
which means that a meeting instance of the series is currently happening. Neither the parent scheduled meeting, nor the grandparent meeting series can be updated until the ongoing meeting instance is ended. If break this rule, it'll fail saying that "Meeting is in progress".
Rule 4. Update is forbidden for a meeting instance
This rule applies to meeting instance.
It's totally forbidden to update any meeting instance of any state. It fails with an error message like "Meeting ID '06263e1088604fc1b3ca17fbe49fe97d_I_195989045032040979' is not allowed for this API."
Rule 5. Update is forbidden to cross recurring interval
This rule applies to scheduled meeting.
What is a recurring interval
When a meeting series has been scheduled, each scheduled meeting of this meeting series has its own "territory of time". It means that any other scheduled meeting of the same meeting series cannot be updated to fall into the range of time of this scheduled meeting. Specifically, each scheduled meeting has its original timezone
when the parent meeting series was scheduled. It can be an explicitly specified value such as Asia/Shanghai
or UTC
by default if not specified explicitly. Generally, the recurring interval of a scheduled meeting begins at 00:00:00
(inclusive) in the original timezone of the day of start
, and ends at 00:00:00
(exclusive) in the original timezone of the day of the next scheduled meeting of the same meeting series. However, there's exception for the first and the last scheduled meeting of a meeting series. The first one has no beginning, and the last one has no end. It's explained in detail below with examples of daily meetings and weekly meetings. The rule for other meetings, e.g. yearly meetings, is similar.
1. Recurring intervals of a daily meeting series
Fig. 1 Recurring intervals of a daily meeting series
Fig. 1 illustrates the recurring intervals of a daily meeting series with four scheduled meetings.
- Recurring interval of
d1
: No beginning, to2021-04-20T00:00:00+08:00
(exclusive). - Recurring interval of
d2
: From2021-04-20T00:00:00+08:00
(inclusive) to2021-04-21T00:00:00+08:00
(exclusive). - Recurring interval of
d3
: From2021-04-21T00:00:00+08:00
(inclusive) to2021-04-22T00:00:00+08:00
(exclusive). - Recurring interval of
d4
: From2021-04-22T00:00:00+08:00
(inclusive), no end.
2. Recurring intervals of a weekly meeting series
Fig. 2 Recurring intervals of a weekly meeting series
Fig. 2 illustrates the recurring intervals of a weekly meeting series with four scheduled meetings. Please note that recurring intervals of a weekly meeting can be of different lengths, and a single recurring interval may cross days.
- Recurring interval of
w1
: No beginning, to2021-06-04T00:00:00+08:00
(exclusive). - Recurring interval of
w2
: From2021-06-04T00:00:00+08:00
(inclusive) to2021-06-08T00:00:00+08:00
(exclusive). - Recurring interval of
w3
: From2021-06-08T00:00:00+08:00
(inclusive) to2021-06-11T10:00:00+08:00
(exclusive). - Recurring interval of
w4
: From2021-06-11T10:00:00+08:00
(inclusive), no end.
3. Recurring intervals of the first and last scheduled meetings of a meeting series
Fig. 3 Recurring intervals of the first and last scheduled meetings of a meeting series
Please pay attention to the recurring intervals of the first and the last scheduled meetings of a meeting series:
The recurring interval of the first scheduled meeting of a meeting series has no beginning. For instance, Fig. 3 illustrates recurring intervals of a daily meeting series with three scheduled meetings. The recurring interval of
d1
which is highlighted in green has no beginning and ends at2021-04-20T00:00:00+08:00
(exclusive). Therefore,d1
can be updated tod1-01
ord1-02
.The recurring interval of the last scheduled meeting of a meeting series has no end. For instance, in Fig. 3, the recurring interval of
d3
which is highlighted in blue begins at2021-04-21T00:00:00+08:00
and has no end. Therefore,d3
can be updated tod3-01
ord3-02
.
Cross-recurring-interval update is forbidden
Based on the recurring interval
concept, cross-recurring-interval update is forbidden. If break this rule, it'll fail with an error message like "meeting.err.two_meeting_schedule_at_same_day". Specifically, meetings RESTful API examines start
against crossing-recurring-interval behavior when updating a scheduled meeting, but it doesn't examine end
against this rule.
1. Update scheduled meetings of a daily meeting series successfully
Fig. 4 Update scheduled meetings of a daily meeting series successfully
Fig. 4 illustrates non-cross-recurring-interval updates for scheduled meetings of a daily meeting series. All the updates in Fig. 4 are within the same recurring interval and succeed. For example:
d1
tod1-s1
: This update is withind1
's recurring interval. It makes the previouslymissed
d1
to beready
again.d2
tod2-s1
: This update is withind2
's recurring interval. It makesd2
a little earlier in the same day.d2
tod2-s2
: This update is withind2
's recurring interval. It makesd2
a little later in the same day.d4
tod4-s1
: This update is withind4
's recurring interval. It makesd4
a little earlier in the same day.d4
tod4-s2
: This update is withind4
's recurring interval. It makesd4
a little later in the same day.d4
tod4-s2
: This update is withind4
's recurring interval. It makesd4
a little later in the same day.d4
tod4-s3
ord4-s4
: This update is withind4
's recurring interval. It movesd4
to the next day or even later. However, they are both within the recurring interval ofd4
sinced4
is the last scheduled meeting of the parent meeting series. It doesn't breakrule 5
.
2. Update scheduled meetings of a daily meeting series crossing recurring interval
Fig. 5 Update scheduled meetings of a daily meeting series crossing recurring interval
Fig. 5 illustrates cross-recurring-interval updates for scheduled meetings of a daily meeting series. All the updates in Fig. 5 break rule 5
and fail. For example:
d1
tod1-f1
: This update movesd1
to a time before the current time and breaksrule 1
.d2
tod2-f1
: This update movesd2
to the previous day and breaksrule 5
.d2
tod2-f2
: This update movesd2
to the next day and breaksrule 5
.d3
tod3-f4
: This update movesd3
to two days later and breaksrule 5
.d4
tod4-f2
: This update movesd4
to two days ago and breaksrule 5
.
3. Update scheduled meetings of a weekly meeting series successfully
Fig. 6 Update scheduled meetings of a weekly meeting series successfully
Fig. 6 illustrates non-cross-recurring-interval updates for scheduled meetings of a weekly meeting series. All the updates in Fig. 6 are within the same recurring interval and succeed. For example:
w1
tow1-s1
: This update is withinw1
's recurring interval. It moves the previouslymissed
w1
to the next day and makes itready
again. It crosses day, but it doesn't cross recurring interval. So, it doesn't breakrule 5
.w1
tow1-s2
: This update is withinw1
's recurring interval. It moves the previouslymissed
w1
to two days later and makes itready
again. It crosses day, but it doesn't cross recurring interval. So, it doesn't breakrule 5
.w2
tow2-s1
: This update is withinw2
's recurring interval. It movesw2
a little earlier in the same day.w2
tow2-s3
: This update is withinw2
's recurring interval. It movesw2
three days later. It crosses day, but it doesn't cross recurring interval. So, it doesn't breakrule 5
.w4
tow4-s2
: This update is withinw4
's recurring interval. It movesw4
to the two days later or even later than that. However, it's withinw4
's recurring interval sincew4
is the last scheduled meeting of the parent meeting series. It doesn't breakrule 5
.
4. Update scheduled meetings of a weekly meeting series crossing recurring interval
Fig. 7 Update scheduled meetings of a weekly meeting series crossing recurring interval
Fig. 7 illustrates cross-recurring-interval updates for scheduled meetings of a weekly meeting series. All the updates in Fig. 7 break rule 5
and fail. For example:
w1
tow1-f1
: This update movesw1
to a time before the current time and breaksrule 1
.w1
tow1-f2
: This update movesw1
to the next recurring interval and breaksrule 5
.w2
tow2-f1
: This update movesw2
to the previous recurring interval and breaksrule 5
.w2
tow2-f2
: This update movesw2
to the next recurring interval and breaksrule 5
.w2
tow2-f3
: This update movesw2
to the last recurring interval and breaksrule 5
.w4
tow4-f2
: This update movesw4
to the second recurring interval and breaksrule 5
.
5. Boundary cases
Fig. 8 Boundary cases
Meetings RESTful API examines start
against crossing-recurring-interval behavior when updating a scheduled meeting, but it doesn't examine end
against this rule. In other words, if the target start
crosses recurring interval, the update breaks rule 5
; if the target start
doesn't cross recurring interval, it doesn't break rule 5
.
Fig. 8 illustrates various boundary cases of updating a scheduled meeting of a daily meeting series. The upper part is moving d1
towards d2
and the lower part is moving d2
towards d1
.
The upper part is forward boundary cases:
d1
tod1-b1
: This update doesn't cross recurring interval. It doesn't breakrule 5
.d1
tod1-b2
: The targetend
is on the boundary but the targetstart
doesn't cross boundary. It doesn't breakrule 5
.d1
tod1-b3
: The targetend
is in the next recurring interval but the targetstart
doesn't cross boundary. It doesn't breakrule 5
.d1
tod1-b4
: The targetstart
is on the boundary and the targetend
is in the next recurring interval. Since a recurring interval is left-inclusive and right-exclusive, it breaksrule 5
.d1
tod1-b5
: Both the targetstart
andend
are in the next recurring interval. It breaksrule 5
.
The lower part is backward boundary cases:
d2
tod2-b1
: This update doesn't cross recurring interval. It doesn't breakrule 5
.d2
tod2-b2
: The targetstart
is on the boundary. Since a recurring interval is left-inclusive and right-exclusive, it doesn't breakrule 5
.d2
tod2-b3
: The targetstart
is in the previous recurring interval. It breaksrule 5
.d2
tod2-b4
: The targetstart
is in the previous recurring interval and the targetend
is on the boundary. It breaksrule 5
.d2
tod2-b5
: Both the targetstart
andend
are in the previous recurring interval. It breaksrule 5
.
Fig. 9 Cross-day cases
There're extreme situations where the parent meeting series was scheduled crossing-day. Fig.9 illustrates a daily meeting series of which the start
is in some day while the end
is in the next day. d2
, d3
and d4
are successive scheduled meetings of the series. Here're the recurring intervals of d3
and d4
:
- Recurring interval of
d3
: From2021-04-20T00:00:00+08:00
(inclusive) to2021-04-21T00:00:00+08:00
(exclusive). - Recurring interval of
d4
: From2021-04-21T00:00:00+08:00
(inclusive) to2021-04-22T00:00:00+08:00
(exclusive).
The following updates break rule 5
:
d3
tod3-01
: The targetstart
is in the previous recurring interval. It breaksrule 5
.d3
tod3-02
: Same as above.d3
tod3-03
: Same as above.d3
tod3-10
: The targetstart
is in the next recurring interval. It breaksrule 5
.d3
tod3-11
: Same as above.
Restrictions table
To summarize, the restrictions on updating a meeting of different types are listed in the table below.
Meeting type | Restrictions on updating meeting of this type |
---|---|
Meeting series | Rule 1, 2, 3 |
Scheduled meeting | Rule 1, 2, 3, 5 |
Meeting | Rule 4 |
- Webex Meetings
- Creating and Using Webex Apps
- Meetings API Scopes
- User Level Authentication and Scopes
- Admin/Organization Level Authentication and Scopes
- Compliance Officer Level Authentication and Scopes
- Scopes and User Roles
- Meeting Series, Scheduled Meetings, and Meeting Instances
- Meeting States
- Available Meeting Attributes for Different Meeting States
- Meeting Lifecycle
- Meeting Template Locales
- Warnings
- Restrictions on Updating a Meeting