Change the title, times or guests of an event by its id.
Updates an event. This method supports patch semantics.
Job calendar.events.update
telipot run google-calendar.events.update \
--input-json '{"calendarId":"primary","eventId":"3vq8k2nd5ho1c7a9f0b4lmetoe"}' \
--as user:ana \
--quotePrice
Freegoogle-calendar.events.update
Whose account it uses
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:anacalendarId 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"
}
