Google Calendar
GOOGLECALENDAR_UPDATE_EVENT
Updates an existing event by `event_id` in a Google Calendar; this is a full PUT replacement, so provide all desired fields as unspecified ones may be cleared or reset.
Remote googlecalendar
Other tools also called GOOGLECALENDAR_UPDATE_EVENT?
See providers with this name
Input Schema
{
"type": "object",
"properties": {
"summary": {
"type": [
"string",
"null"
],
"default": null,
"description": "Summary (title) of the event."
},
"event_id": {
"type": "string",
"description": "The unique identifier of the event to be updated.\nExample: \"a1b2c3d4e5f6g7h8i9j0k1l2m3\""
},
"location": {
"type": [
"string",
"null"
],
"default": null,
"description": "Geographic location of the event as free-form text."
},
"timezone": {
"type": [
"string",
"null"
],
"default": null,
"description": "IANA timezone name (e.g., 'America/New_York'). Required if datetime is naive. For recurring events, start and end must include a timeZone. If not provided, UTC is used. If datetime includes timezone info (Z or offset), this field is optional and defaults to UTC."
},
"attendees": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "List of attendee emails (strings)."
},
"eventType": {
"enum": [
"birthday",
"default",
"focusTime",
"outOfOffice",
"workingLocation"
],
"type": "string",
"default": "default",
"description": "Type of the event, immutable post-creation. 'workingLocation' (REQUIRES Google Workspace Enterprise). Note: 'fromGmail' events cannot be created via API."
},
"recurrence": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null,
"description": "List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events. Supported frequencies: DAILY, WEEKLY, MONTHLY, YEARLY. For recurring events, start.timeZone and end.timeZone must be present. Provide an empty list to remove recurrence so the event becomes non-recurring."
},
"visibility": {
"enum": [
"default",
"public",
"private",
"confidential"
],
"type": "string",
"default": "default",
"description": "Event visibility: 'default', 'public', 'private', or 'confidential'."
},
"calendar_id": {
"type": "string",
"default": "primary",
"description": "Identifier of the Google Calendar where the event resides. The value 'primary' targets the user's primary calendar.\nExamples:\n \"primary\"\n \"[email protected]\"\n \"[email protected]\""
},
"description": {
"type": [
"string",
"null"
],
"default": null,
"description": "Description of the event. Can contain HTML. Optional. Must be omitted for 'birthday' event type."
},
"send_updates": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "Defaults to True. Whether to send updates to the attendees."
},
"transparency": {
"enum": [
"opaque",
"transparent"
],
"type": "string",
"default": "opaque",
"description": "'opaque' (busy) or 'transparent' (available)."
},
"start_datetime": {
"type": "string",
"description": "Event start time in format YYYY-MM-DDTHH:MM:SS (no fractional seconds, no 'Z', no timezone offsets). Examples: '2025-01-16T13:00:00' or '2025-01-16T13:00'. Timezone info (Z, +, -) will be automatically stripped if provided."
},
"guests_can_modify": {
"type": "boolean",
"default": false,
"description": "If True, guests can modify the event."
},
"birthdayProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"enum": [
"birthday",
"anniversary",
"other"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Type of birthday event: 'birthday', 'anniversary', or 'other'. Default 'birthday' works without contact field."
},
"contact": {
"type": [
"string",
"null"
],
"default": null,
"description": "Contact ID in format 'people/c12345' from Google People API. REQUIRED when type is not 'birthday'."
},
"customTypeName": {
"type": [
"string",
"null"
],
"default": null,
"description": "Custom type name when type is 'other'. Requires valid contact field."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Properties for birthday events."
},
"create_meeting_room": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "If true, a Google Meet link is created and added to the event. CRITICAL: As of 2024, this REQUIRES a paid Google Workspace account ($13+/month). Personal Gmail accounts will fail with 'Invalid conference type value' error. Solutions: 1) Upgrade to Workspace, 2) Use domain-wide delegation with Workspace user, 3) Use the new Google Meet REST API, or 4) Create events without conferences. See https://github.com/googleapis/google-api-nodejs-client/issues/3234"
},
"event_duration_hour": {
"type": "integer",
"default": 0,
"maximum": 24,
"minimum": 0,
"description": "Number of hours (0-24). Increase by 1 here rather than passing 60 in `event_duration_minutes`"
},
"focusTimeProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"chatStatus": {
"anyOf": [
{
"enum": [
"active",
"doNotDisturb"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Chat status during focus time: 'active' or 'doNotDisturb'."
},
"declineMessage": {
"type": [
"string",
"null"
],
"default": null,
"description": "Message to include in declined meeting invitations. Only used when autoDeclineMode is set."
},
"autoDeclineMode": {
"anyOf": [
{
"enum": [
"declineNone",
"declineAllConflictingInvitations",
"declineOnlyNewConflictingInvitations"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Auto decline mode: 'declineNone' (no invitations declined), 'declineAllConflictingInvitations' (all conflicting invitations declined), or 'declineOnlyNewConflictingInvitations' (only new conflicting invitations declined)."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Properties for focusTime events. REQUIRES Google Workspace Enterprise account with Focus Time feature enabled."
},
"guestsCanInviteOthers": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "Whether attendees other than the organizer can invite others to the event."
},
"outOfOfficeProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"declineMessage": {
"type": [
"string",
"null"
],
"default": null,
"description": "Message to include in declined meeting invitations. Only used when autoDeclineMode is set."
},
"autoDeclineMode": {
"anyOf": [
{
"enum": [
"declineNone",
"declineAllConflictingInvitations",
"declineOnlyNewConflictingInvitations"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Auto decline mode: 'declineNone' (no invitations declined), 'declineAllConflictingInvitations' (all conflicting invitations declined), or 'declineOnlyNewConflictingInvitations' (only new conflicting invitations declined)."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Properties for outOfOffice events."
},
"event_duration_minutes": {
"type": "integer",
"default": 30,
"maximum": 59,
"minimum": 0,
"description": "Duration in minutes (0-59 ONLY). NEVER use 60+ minutes - use event_duration_hour=1 instead. Maximum value is 59. Combined duration (hours + minutes) must be greater than 0."
},
"guestsCanSeeOtherGuests": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "Whether attendees other than the organizer can see who the event's attendees are."
},
"workingLocationProperties": {
"anyOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"homeOffice",
"officeLocation",
"customLocation"
],
"type": "string",
"description": "Type of working location ('homeOffice' | 'officeLocation' | 'customLocation')."
},
"homeOffice": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Empty object marker for home office working location.\n\nThis is used to indicate the user is working from home.\nGoogle Calendar API accepts an empty object for this field."
},
"customLocation": {
"anyOf": [
{
"type": "object",
"required": [
"label"
],
"properties": {
"label": {
"type": "string",
"description": "Label for a custom working location (e.g., 'Client site')."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Custom working location with a display label."
},
"officeLocation": {
"anyOf": [
{
"type": "object",
"properties": {
"label": {
"type": [
"string",
"null"
],
"default": null,
"description": "Office name displayed in Calendar clients (e.g., building name)."
},
"deskId": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional desk identifier."
},
"floorId": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional floor identifier."
},
"buildingId": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional building identifier from org Resources."
},
"floorSectionId": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional floor section identifier."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Office-based working location details."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"default": null,
"description": "Properties for workingLocation events. REQUIRES Google Workspace Enterprise.\n\nConstraints discovered from testing:\n- Must set transparency='transparent' and visibility='public'\n- Description must be omitted\n- Depending on 'type', include one of 'homeOffice', 'officeLocation', or 'customLocation'"
}
}
}