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'"
    }
  }
}