list_meetings
Retrieve and organize Zoom meetings by type—upcoming, scheduled, or previous—using the Zoom API. Simplify meeting management for better scheduling and tracking.
Instructions
List scheduled meetings
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | The type of meeting. Choose from upcoming, scheduled or previous_meetings. upcoming - All upcoming meetings; scheduled - All valid previous (unexpired) meetings and upcoming scheduled meetings; previous_meetings - All the previous meetings; | upcoming |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"type": {
"default": "upcoming",
"description": "The type of meeting. Choose from upcoming, scheduled or previous_meetings. upcoming - All upcoming meetings; scheduled - All valid previous (unexpired) meetings and upcoming scheduled meetings; previous_meetings - All the previous meetings;",
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- operations/meeting.ts:64-79 (handler)The handler function implementing the list_meetings tool, which queries the Zoom API for user meetings with optional parameters and parses the response.export async function listMeetings(options: ListMeetingOptions) { let url = "https://api.zoom.us/v2/users/me/meetings"; const params = new URLSearchParams(); Object.entries(options).forEach(([key, value]) => { if (value !== undefined && value !== null) { params.append(key, value.toString()); } }); if (Array.from(params).length > 0) { url += `?${params.toString()}`; } const response = await zoomRequest(url, { method: "GET", }); return ZoomListMeetingsSchema.parse(response); }
- operations/meeting.ts:30-38 (schema)Input schema for list_meetings tool defining optional 'type' parameter.export const ListMeetingOptionsSchema = z.object({ type: z .string() .optional() .describe( "The type of meeting. Choose from upcoming, scheduled or previous_meetings. upcoming - All upcoming meetings; scheduled - All valid previous (unexpired) meetings and upcoming scheduled meetings; previous_meetings - All the previous meetings;", ) .default("upcoming"), });
- common/types.ts:92-111 (schema)Output schema used to parse the Zoom API response for list of meetings.export const ZoomListMeetingsSchema = z.object({ page_size: z.number(), total_records: z.number(), next_page_token: z.string(), meetings: z.array( z.object({ uuid: z.string(), id: z.number(), host_id: z.string().optional(), topic: z.string().optional(), type: z.number().optional(), start_time: z.string().optional(), duration: z.number().optional(), timezone: z.string().optional(), agenda: z.string().optional(), created_at: z.string().optional(), join_url: z.string().optional(), }), ), });
- index.ts:131-135 (registration)Tool registration in ListToolsRequestHandler, providing name, description, and input schema.{ name: "list_meetings", description: "List scheduled meetings", inputSchema: zodToJsonSchema(ListMeetingOptionsSchema), },
- index.ts:164-170 (registration)Tool handler in CallToolRequestHandler that validates input, calls listMeetings, and formats output.case "list_meetings": { const args = ListMeetingOptionsSchema.parse(request.params.arguments); const result = await listMeetings(args); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; }