Automate Zoom operations including meeting scheduling, webinar management, cloud recording retrieval, participant tracking, and usage reporting through Composio's Zoom toolkit.
Toolkit docs: composio.dev/toolkits/zoom
RUBE_MANAGE_CONNECTIONS with toolkit zoom
RUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit zoom
When to use: User wants to create a new Zoom meeting with specific time, duration, and settings
Tool sequence:
ZOOM_GET_USER - Verify authenticated user and check license type [Prerequisite]ZOOM_CREATE_A_MEETING - Create the meeting with topic, time, duration, and settings [Required]ZOOM_GET_A_MEETING - Retrieve full meeting details including join_url [Optional]ZOOM_UPDATE_A_MEETING - Modify meeting settings or reschedule [Optional]ZOOM_ADD_A_MEETING_REGISTRANT - Register participants for registration-enabled meetings [Optional]Key parameters:
userId: Always use "me" for user-level appstopic: Meeting subject linetype: 1 (instant), 2 (scheduled), 3 (recurring no fixed time), 8 (recurring fixed time)start_time: ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ for UTC or yyyy-MM-ddTHH:mm:ss with timezone field)timezone: Timezone ID (e.g., "America/New_York")duration: Duration in minutessettings__auto_recording: "none", "local", or "cloud"
settings__waiting_room: Boolean to enable waiting roomsettings__join_before_host: Boolean (disabled when waiting room is enabled)settings__meeting_invitees: Array of invitee objects with email addressesPitfalls:
start_time must be in the future; Zoom stores and returns times in UTC regardless of input timezonestart_time is set for type 2, it becomes an instant meeting that expires after 30 daysjoin_url for participants and start_url for host come from the create response - persist thesestart_url expires in 2 hours (or 90 days for custCreate users)settings__host_video)When to use: User wants to view upcoming, live, or past meetings
Tool sequence:
ZOOM_LIST_MEETINGS - List meetings by type (scheduled, live, upcoming, previous) [Required]ZOOM_GET_A_MEETING - Get detailed info for a specific meeting [Optional]ZOOM_UPDATE_A_MEETING - Modify meeting details [Optional]Key parameters:
userId: Use "me" for authenticated usertype: "scheduled" (default), "live", "upcoming", "upcoming_meetings", "previous_meetings"
page_size: Records per page (default 30)next_page_token: Pagination token from previous responsefrom / to: Date range filtersPitfalls:
ZOOM_LIST_MEETINGS excludes instant meetings and only shows unexpired scheduled meetingstype: "previous_meetings"
next_page_token until empty to get complete resultsnext_page_token expires after 15 minutesWhen to use: User wants to list, retrieve, or delete cloud recordings
Tool sequence:
ZOOM_LIST_ALL_RECORDINGS - List all cloud recordings for a user within a date range [Required]ZOOM_GET_MEETING_RECORDINGS - Get recordings for a specific meeting [Optional]ZOOM_DELETE_MEETING_RECORDINGS - Move recordings to trash or permanently delete [Optional]ZOOM_LIST_ARCHIVED_FILES - List archived meeting/webinar files [Optional]Key parameters:
userId: Use "me" for authenticated userfrom / to: Date range in yyyy-mm-dd format (max 1 month range)meetingId: Meeting ID or UUID for specific recording retrievalaction: "trash" (recoverable) or "delete" (permanent) for deletioninclude_fields: Set to "download_access_token" to get JWT for downloading recordingstrash: Set true to list recordings from trashPitfalls:
from if range exceeds this/ or containing // must be double URL-encodedZOOM_DELETE_MEETING_RECORDINGS defaults to "trash" action (recoverable); "delete" is permanentWhen to use: User wants to see who attended a past meeting or get usage statistics
Tool sequence:
ZOOM_GET_PAST_MEETING_PARTICIPANTS - List attendees of a completed meeting [Required]ZOOM_GET_A_MEETING - Get meeting details and registration info for upcoming meetings [Optional]ZOOM_GET_DAILY_USAGE_REPORT - Get daily usage statistics (meetings, participants, minutes) [Optional]ZOOM_GET_A_MEETING_SUMMARY - Get AI-generated meeting summary [Optional]Key parameters:
meetingId: Meeting ID (latest instance) or UUID (specific occurrence)page_size: Records per page (default 30)next_page_token: Pagination token for large participant listsPitfalls:
ZOOM_GET_PAST_MEETING_PARTICIPANTS only works for completed meetings on paid plans/ or containing // must be double-encodednext_page_token until empty to avoid dropping attendeesZOOM_GET_A_MEETING_SUMMARY requires a paid plan with AI Companion enabled; free accounts get 400 errorsZOOM_GET_DAILY_USAGE_REPORT has a Heavy rate limit; avoid frequent callsWhen to use: User wants to list webinars or register participants for webinars
Tool sequence:
ZOOM_LIST_WEBINARS - List scheduled or upcoming webinars [Required]ZOOM_GET_A_WEBINAR - Get detailed webinar information [Optional]ZOOM_ADD_A_WEBINAR_REGISTRANT - Register a participant for a webinar [Optional]Key parameters:
userId: Use "me" for authenticated usertype: "scheduled" (default) or "upcoming"
page_size: Records per page (default 30)next_page_token: Pagination tokenPitfalls:
ZOOM_ADD_A_WEBINAR_REGISTRANT to work"me" for user-level apps to refer to the authenticated user/ or contains //
Most Zoom list endpoints use token-based pagination:
next_page_token until it is empty or missingpage_size (default 30, varies by endpoint)page_number (deprecated on many endpoints)timezone field alongside start_time for local time inputyyyy-MM-ddTHH:mm:ssZ (UTC) or yyyy-MM-ddTHH:mm:ss (with timezone field)yyyy-mm-dd formatZOOM_GET_PAST_MEETING_PARTICIPANTS: Moderate throttle; add delays for batch processingZOOM_GET_DAILY_USAGE_REPORT: Heavy rate limitZOOM_GET_A_MEETING, ZOOM_GET_MEETING_RECORDINGS: Light rate limitZOOM_LIST_MEETINGS, ZOOM_LIST_ALL_RECORDINGS: Medium rate limitsettings__waiting_room)start_url expires in 2 hours; renew via API if neededjoin_before_host is automatically disabled when waiting_room is true
recurrence__*) only apply to type 3 and 8
password field has max 10 characters with alphanumeric and @, -, _, * only| Task | Tool Slug | Key Params |
|---|---|---|
| Create meeting | ZOOM_CREATE_A_MEETING |
userId, topic, start_time, type |
| Get meeting details | ZOOM_GET_A_MEETING |
meetingId |
| Update meeting | ZOOM_UPDATE_A_MEETING |
meetingId, fields to update |
| List meetings | ZOOM_LIST_MEETINGS |
userId, type, page_size |
| Get user info | ZOOM_GET_USER |
userId |
| List recordings | ZOOM_LIST_ALL_RECORDINGS |
userId, from, to |
| Get recording | ZOOM_GET_MEETING_RECORDINGS |
meetingId |
| Delete recording | ZOOM_DELETE_MEETING_RECORDINGS |
meetingId, action |
| Past participants | ZOOM_GET_PAST_MEETING_PARTICIPANTS |
meetingId, page_size |
| Daily usage report | ZOOM_GET_DAILY_USAGE_REPORT |
date params |
| Meeting summary | ZOOM_GET_A_MEETING_SUMMARY |
meetingId |
| List webinars | ZOOM_LIST_WEBINARS |
userId, type |
| Get webinar | ZOOM_GET_A_WEBINAR |
webinar ID |
| Register for meeting | ZOOM_ADD_A_MEETING_REGISTRANT |
meetingId, participant details |
| Register for webinar | ZOOM_ADD_A_WEBINAR_REGISTRANT |
webinar ID, participant details |
| List archived files | ZOOM_LIST_ARCHIVED_FILES |
from, to |
Powered by Composio