Skip to main content

Google Calendar Update Event

Controlled node

Overview

Updates an existing event in Google Calendar. This node allows you to modify specific properties of a calendar event—such as the title, timing, location, or attendees—without affecting unspecified fields. Only the inputs you provide will be changed; all other event properties remain as they were.

The node supports complex updates including recurring event patterns (RRULE generation), timezone-aware datetime handling, and Google Meet conference link management. Attendees can be provided in multiple formats: as a comma-separated string, a single email address, an array of emails, or an array of objects with email and displayName properties.

Event ID Required

You must provide the Event ID of the existing calendar event you wish to update. This can be obtained from the GoogleCalendarListEvents or GoogleCalendarCreateEvent nodes.

Inputs

InputTypeDescriptionDefault
RunEventTriggers the update operation.-
Event IDTextThe unique identifier of the calendar event to update.-
Calendar IDTextThe calendar containing the event. Use primary for the user's main calendar.primary
SummaryTextThe title of the event.-
DescriptionPlainTextThe description or notes for the event.-
LocationTextThe location where the event takes place.-
Start DateTimeDateTimeThe start time of the event (ISO 8601 format).-
End DateTimeDateTimeThe end time of the event (ISO 8601 format).-
Time ZoneTimeZoneThe timezone for the event times (e.g., America/New_York).User's local timezone
RecurrenceEnumRecurrence pattern: NO_REPEAT, DAILY, WEEKDAY (Mon-Fri), WEEKLY, MONTHLY, or YEARLY.NO_REPEAT
AttendeesTextEmail addresses of attendees. Accepts comma-separated strings, single emails, arrays, or objects.-
Send UpdatesEnumWho to notify: all (all attendees) or externalOnly (external attendees only).all
ConferenceBooleanWhether to add a Google Meet conference link to the event.true
ConnectionsConnectionGoogle Calendar connection to use for the operation.-

Outputs

OutputTypeDescription
DoneEventFires when the update operation completes successfully.
ResultDataThe updated event object from Google Calendar, or an error object if the operation failed.

Runtime Behavior and Defaults

When the Run event fires, the node sends an update request to Google Calendar using the provided Event ID. The node employs a "sparse update" strategy: only fields with explicitly provided values are sent to the API. Fields left empty or undefined are not modified, preserving the existing event data.

Attendee Formatting: The node automatically normalizes attendee inputs:

  • Comma-separated strings: "email1@example.com, email2@example.com"
  • Single email string: "email@example.com"
  • Array of strings: ["email1@example.com", "email2@example.com"]
  • Array of objects: [{email: "email@example.com", displayName: "John Doe"}]

Datetime Handling: The node strips timezone suffixes (like Z or +00:00) from ISO datetime strings to treat them as local wall-clock times in the specified timezone, then converts them to RFC3339 format for the Google Calendar API.

Recurrence: When a recurrence option other than NO_REPEAT is selected, the node automatically generates an RRULE string (e.g., RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR for weekdays) and includes it in the update.

Defaults:

  • calendarId: primary
  • sendUpdates: all
  • conference: true
  • recurrence: NO_REPEAT
  • timeZone: The user's local system timezone (e.g., America/New_York)

Example

Here is a simple workflow that updates an existing meeting's title and extends its duration:

  1. Use Google Calendar List Events to find the event you want to modify.
  2. Pass the eventId from the result to the Google Calendar Update Event node.
  3. Provide new values for Summary (e.g., "Updated: Project Review") and End DateTime (e.g., "2025-11-14T12:00:00").
  4. Connect the Done event to trigger a confirmation message or next step in your workflow.
// Example attendee input formats that work:
// Comma-separated string:
"alice@example.com, bob@example.com"

// Array of emails:
["alice@example.com", "bob@example.com"]

// Array of objects:
[
{ email: "alice@example.com", displayName: "Alice Smith" },
{ email: "bob@example.com", displayName: "Bob Jones" }
]