create_meeting
Schedule or initiate a Zoom meeting by defining agenda, topic, start time, and timezone. Configure details to set up a meeting instantly or for a future date, adjusting timezone as needed.
Instructions
Create a meeting
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agenda | No | The meeting's agenda. | New Meeting's agenda |
| start_time | No | The meeting's start time. This supports local time and GMT formats.To set a meeting's start time in GMT, use the yyyy-MM-ddTHH:mm:ssZ date-time format. For example, 2020-03-31T12:02:00Z. To set a meeting's start time using a specific timezone, use the yyyy-MM-ddTHH:mm:ss date-time format and specify the timezone ID in the timezone field. If you do not specify a timezone, the timezone value defaults to your Zoom account's timezone. You can also use UTC for the timezone value. Note: If no start_time is set for a scheduled meeting, the start_time is set at the current time and the meeting type changes to an instant meeting, which expires after 30 days. current time is 2025-08-18T14:20:49.346Z. | |
| timezone | No | Timezone for the meeting's start time. The Current timezone is UTC. | |
| topic | No | The meeting's topic. |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agenda": {
"default": "New Meeting's agenda",
"description": "The meeting's agenda.",
"maxLength": 2000,
"type": "string"
},
"start_time": {
"description": "The meeting's start time. This supports local time and GMT formats.To set a meeting's start time in GMT, use the yyyy-MM-ddTHH:mm:ssZ date-time format. For example, 2020-03-31T12:02:00Z. To set a meeting's start time using a specific timezone, use the yyyy-MM-ddTHH:mm:ss date-time format and specify the timezone ID in the timezone field. If you do not specify a timezone, the timezone value defaults to your Zoom account's timezone. You can also use UTC for the timezone value. Note: If no start_time is set for a scheduled meeting, the start_time is set at the current time and the meeting type changes to an instant meeting, which expires after 30 days. current time is 2025-08-18T14:20:49.346Z.",
"type": "string"
},
"timezone": {
"description": "Timezone for the meeting's start time. The Current timezone is UTC.",
"type": "string"
},
"topic": {
"description": "The meeting's topic.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- operations/meeting.ts:53-62 (handler)The core handler function that executes the create_meeting tool by sending a POST request to the Zoom API to create a new meeting.export async function createMeeting(options: CreateMeetingOptions) { const response = await zoomRequest( `https://api.zoom.us/v2/users/me/meetings`, { method: "POST", body: options, }, ); return ZoomMeetingSchema.parse(response); }
- operations/meeting.ts:9-28 (schema)Zod schema defining the input parameters for the create_meeting tool, including agenda, start_time, timezone, and topic.export const CreateMeetingOptionsSchema = z.object({ agenda: z .string() .max(2000) .describe("The meeting's agenda.") .default("New Meeting's agenda"), start_time: z .string() .optional() .describe( `The meeting's start time. This supports local time and GMT formats.To set a meeting's start time in GMT, use the yyyy-MM-ddTHH:mm:ssZ date-time format. For example, 2020-03-31T12:02:00Z. To set a meeting's start time using a specific timezone, use the yyyy-MM-ddTHH:mm:ss date-time format and specify the timezone ID in the timezone field. If you do not specify a timezone, the timezone value defaults to your Zoom account's timezone. You can also use UTC for the timezone value. Note: If no start_time is set for a scheduled meeting, the start_time is set at the current time and the meeting type changes to an instant meeting, which expires after 30 days. current time is ${new Date().toISOString()}.`, ), timezone: z .string() .optional() .describe( `Timezone for the meeting's start time. The Current timezone is ${Intl.DateTimeFormat().resolvedOptions().timeZone}.`, ), topic: z.string().max(200).optional().describe("The meeting's topic."), });
- index.ts:127-130 (registration)Tool registration in the ListToolsRequest handler, specifying the name, description, and input schema for the create_meeting tool.name: "create_meeting", description: "Create a meeting", inputSchema: zodToJsonSchema(CreateMeetingOptionsSchema), },
- index.ts:156-162 (handler)Dispatch handler in the CallToolRequest that validates input with the schema and invokes the createMeeting function.case "create_meeting": { const args = CreateMeetingOptionsSchema.parse(request.params.arguments); const result = await createMeeting(args); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; }