update_event
Modify existing calendar events by updating attendees, description, start/end times, location, or title using the Google Workspace MCP Server tool.
Instructions
Update an existing calendar event
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| attendees | No | New list of attendee email addresses | |
| description | No | New event description | |
| end | No | New end time in ISO format | |
| eventId | Yes | Event ID to update | |
| location | No | New event location | |
| start | No | New start time in ISO format | |
| summary | No | New event title |
Implementation Reference
- src/index.ts:590-640 (handler)Executes the update_event tool: patches the specified Google Calendar event with updated fields (summary, location, description, start, end, attendees) using Google Calendar API v3.private async handleUpdateEvent(args: any) { try { const { eventId, summary, location, description, start, end, attendees } = args; const event: any = {}; if (summary) event.summary = summary; if (location) event.location = location; if (description) event.description = description; if (start) { event.start = { dateTime: start, timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, }; } if (end) { event.end = { dateTime: end, timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, }; } if (attendees) { event.attendees = attendees.map((email: string) => ({ email })); } const response = await this.calendar.events.patch({ calendarId: "primary", eventId, requestBody: event, }); return { content: [ { type: "text", text: `Event updated successfully. Event ID: ${response.data.id}`, }, ], }; } catch (error: any) { return { content: [ { type: "text", text: `Error updating event: ${error.message}`, }, ], isError: true, }; } }
- src/index.ts:219-253 (schema)Input schema defining the parameters for the update_event tool: eventId (required), optional summary, location, description, start, end, attendees.inputSchema: { type: "object", properties: { eventId: { type: "string", description: "Event ID to update", }, summary: { type: "string", description: "New event title", }, location: { type: "string", description: "New event location", }, description: { type: "string", description: "New event description", }, start: { type: "string", description: "New start time in ISO format", }, end: { type: "string", description: "New end time in ISO format", }, attendees: { type: "array", items: { type: "string" }, description: "New list of attendee email addresses", }, }, required: ["eventId"], },
- src/index.ts:216-254 (registration)Registration of the update_event tool in the tools list returned by ListToolsRequestHandler, including name, description, and input schema.{ name: "update_event", description: "Update an existing calendar event", inputSchema: { type: "object", properties: { eventId: { type: "string", description: "Event ID to update", }, summary: { type: "string", description: "New event title", }, location: { type: "string", description: "New event location", }, description: { type: "string", description: "New event description", }, start: { type: "string", description: "New start time in ISO format", }, end: { type: "string", description: "New end time in ISO format", }, attendees: { type: "array", items: { type: "string" }, description: "New list of attendee email addresses", }, }, required: ["eventId"], }, },
- src/index.ts:286-289 (registration)Routing case in the CallToolRequestHandler switch statement that dispatches update_event calls to the handleUpdateEvent method.case "update_event": return await this.handleUpdateEvent(request.params.arguments); case "delete_event": return await this.handleDeleteEvent(request.params.arguments);