Skip to content

Change the title, times or guests of an event by its id.

Updates an event. This method supports patch semantics.

Job calendar.events.update

Your AI asks

checks the price first
telipot run google-calendar.events.update \
  --input-json '{"calendarId":"primary","eventId":"3vq8k2nd5ho1c7a9f0b4lmetoe"}' \
  --as user:ana \
  --quote

Price

Free
Priced· before it runs

google-calendar.events.update

FreePerson’s own

Whose account it uses

1The person asking · as Ana
Selected identity for this example
2Your company’s Google Calendar account
skipped
3Our account
not used

What it sends

{
  "calendarId": "primary",
  "eventId": "3vq8k2nd5ho1c7a9f0b4lmetoe"
}

Your Google Calendar login is added for you. Your AI never sees it.

What it costs

Free

no charge from the provider

Preview the price first. --quote runs nothing.

For developers · run it

Shell · runs the task on the named account

telipot run google-calendar.events.update \
  --input-json '{"calendarId":"primary","eventId":"3vq8k2nd5ho1c7a9f0b4lmetoe"}' \
  --as user:ana

calendarId

string · required · path

primary for the connected account's own calendar, or an id from google-calendar.calendars.list

eventId

string · required · path

The event id, as google-calendar.events.list returns it

sendUpdates

string · one of "all", "externalOnly", "none" · query

Which guests get an email about the change; none when absent

start

object · body

An object with a dateTime and its offset, or a date for an all-day event, and optionally a timeZone

end

object · body

Exclusive; an object with a dateTime and its offset, or a date for an all-day event, and optionally a timeZone

summary

string · body

The title

description

string · body

The description; it can hold HTML

location

string · body

Free text

attendees

array · body

The guests, each an object with an email, and optionally optional, displayName or comment; the list replaces the event's guests, so send everyone who stays

recurrence

array · body

RRULE, EXRULE, RDATE and EXDATE lines, which replace the event's own; give the start and end a timeZone when it recurs

reminders

object · body

The reminders for the connected account on this event

visibility

string · one of "default", "public", "private", "confidential" · body

Who can see the event's details

transparency

string · one of "opaque", "transparent" · body

opaque blocks time on the calendar and transparent leaves it free

colorId

string · body

An id from the event colors the Calendar API lists

id

string

status

string

confirmed, tentative or cancelled

summary

string

The title

description

string

The description; it can hold HTML

location

string

htmlLink

string

A link to the event in the Google Calendar web app

created

string

RFC 3339 time

updated

string

RFC 3339 time of the last change to the main event data

creator

object

organizer

object

start

object

A date for an all-day event, or a dateTime with its offset

end

object

Exclusive; a date for an all-day event, or a dateTime with its offset

recurrence

string[]

RRULE, EXRULE, RDATE and EXDATE lines of a recurring event

recurringEventId

string

The id of the recurring event this is an instance of

originalStartTime

object

attendees

object[]

attendeesOmitted

boolean

hangoutLink

string

conferenceData

object

The conference details such as a Google Meet link

visibility

string

default, public, private or confidential

transparency

string

opaque when the event blocks time, transparent when it does not

eventType

string

default, birthday, focusTime, fromGmail, outOfOffice or workingLocation

colorId

string

iCalUID

string

sequence

integer

reminders

object

etag

string

kind

string

Full output schema · JSONNested fields and constraints

Output JSON Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "confirmed, tentative or cancelled"
    },
    "summary": {
      "type": "string",
      "description": "The title"
    },
    "description": {
      "type": "string",
      "description": "The description; it can hold HTML"
    },
    "location": {
      "type": "string"
    },
    "htmlLink": {
      "type": "string",
      "description": "A link to the event in the Google Calendar web app"
    },
    "created": {
      "type": "string",
      "description": "RFC 3339 time"
    },
    "updated": {
      "type": "string",
      "description": "RFC 3339 time of the last change to the main event data"
    },
    "creator": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "self": {
          "type": "boolean"
        }
      }
    },
    "organizer": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "self": {
          "type": "boolean"
        }
      }
    },
    "start": {
      "type": "object",
      "description": "A date for an all-day event, or a dateTime with its offset",
      "properties": {
        "date": {
          "type": "string"
        },
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      }
    },
    "end": {
      "type": "object",
      "description": "Exclusive; a date for an all-day event, or a dateTime with its offset",
      "properties": {
        "date": {
          "type": "string"
        },
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      }
    },
    "recurrence": {
      "type": "array",
      "description": "RRULE, EXRULE, RDATE and EXDATE lines of a recurring event",
      "items": {
        "type": "string"
      }
    },
    "recurringEventId": {
      "type": "string",
      "description": "The id of the recurring event this is an instance of"
    },
    "originalStartTime": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "dateTime": {
          "type": "string"
        },
        "timeZone": {
          "type": "string"
        }
      }
    },
    "attendees": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "responseStatus": {
            "type": "string",
            "description": "needsAction, declined, tentative or accepted"
          },
          "organizer": {
            "type": "boolean"
          },
          "self": {
            "type": "boolean"
          },
          "resource": {
            "type": "boolean"
          },
          "optional": {
            "type": "boolean"
          }
        }
      }
    },
    "attendeesOmitted": {
      "type": "boolean"
    },
    "hangoutLink": {
      "type": "string"
    },
    "conferenceData": {
      "type": "object",
      "description": "The conference details such as a Google Meet link"
    },
    "visibility": {
      "type": "string",
      "description": "default, public, private or confidential"
    },
    "transparency": {
      "type": "string",
      "description": "opaque when the event blocks time, transparent when it does not"
    },
    "eventType": {
      "type": "string",
      "description": "default, birthday, focusTime, fromGmail, outOfOffice or workingLocation"
    },
    "colorId": {
      "type": "string"
    },
    "iCalUID": {
      "type": "string"
    },
    "sequence": {
      "type": "integer"
    },
    "reminders": {
      "type": "object",
      "properties": {
        "useDefault": {
          "type": "boolean"
        },
        "overrides": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "minutes": {
                "type": "integer"
              }
            }
          }
        }
      }
    },
    "etag": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    }
  }
}

A real answer

examples/google-calendar.events.update.json

{
  "kind": "calendar#event",
  "etag": "\"EXAMPLEETAG\"",
  "id": "3vq8k2nd5ho1c7a9f0b4lmetoe",
  "status": "confirmed",
  "htmlLink": "https://www.google.com/calendar/event?eid=EXAMPLE",
  "created": "2026-09-28T16:02:10.000Z",
  "updated": "2026-10-05T09:30:02.114Z",
  "summary": "Planning, moved",
  "creator": {
    "email": "contact@example.com",
    "self": true
  },
  "organizer": {
    "email": "contact@example.com",
    "self": true
  },
  "start": {
    "dateTime": "2026-10-12T10:00:00-07:00",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "dateTime": "2026-10-12T10:30:00-07:00",
    "timeZone": "America/Los_Angeles"
  },
  "sequence": 1,
  "attendees": [
    {
      "email": "contact@example.com",
      "organizer": true,
      "self": true,
      "responseStatus": "accepted"
    },
    {
      "email": "guest@example.com",
      "responseStatus": "needsAction"
    }
  ],
  "reminders": {
    "useDefault": true
  },
  "eventType": "default"
}