Skip to content

Create, Update & Delete

Create new events, modify existing ones, delete events, and respond to invitations.

POST/api/access/calendar/eventsBearer Token

Create Event

Creates a new calendar event.

Request Body

FieldTypeRequiredDescription
calendarIdlongYesTarget calendar ID (from List Calendars)
summarystringYesEvent title (max 255 chars)
descriptionstringNoEvent description (max 2000 chars)
locationstringNoEvent location (max 255 chars)
fromDateTimeYesStart time (UTC)
toDateTimeYesEnd time (UTC)
isAllDayboolNoAll-day event flag (default: false)
attendeesstring[]NoList of attendee email addresses
recurrencestring[]NoRFC 5545 RRULE recurrence patterns
eventTypestringNoOptional event type
sendNotificationsboolNoSend invitation notifications (default: true)
{
"calendarId": 123,
"summary": "Project Kickoff",
"description": "Initial planning meeting for Q2 project",
"location": "Room 101",
"from": "2026-02-10T09:00:00Z",
"to": "2026-02-10T10:00:00Z",
"isAllDay": false,
"attendees": ["user1@example.com", "user2@example.com"],
"recurrence": ["RRULE:FREQ=WEEKLY;COUNT=4"],
"sendNotifications": true
}

Error Responses

StatusCodeDescription
400Validation error (missing required fields, invalid data)
403ACCESS_DENIEDToken permissions insufficient
403TOKEN_DENIEDToken-level restriction prevents access
403TIMEFRAME_DENIEDEvent falls outside allowed timeframe
404CALENDAR_NOT_FOUNDCalendar not found
PATCH/api/access/calendar/events/{eventId}Bearer Token

Update Event

Updates an existing calendar event. This is a partial update — only provide the fields you want to change.

Request Body (all optional)

FieldTypeDescription
summarystringNew title (max 255 chars)
descriptionstringNew description (max 2000 chars)
locationstringNew location (max 255 chars)
fromDateTimeNew start time (UTC)
toDateTimeNew end time (UTC)
isAllDayboolAll-day event flag
addAttendeesstring[]Email addresses to add as attendees
removeAttendeesstring[]Email addresses to remove from attendees
sendNotificationsboolSend update notifications (default: true)
{
"summary": "Updated Title",
"description": "Updated description",
"location": "New Location",
"from": "2026-02-10T10:00:00Z",
"to": "2026-02-10T11:00:00Z",
"addAttendees": ["new@example.com"],
"removeAttendees": ["old@example.com"],
"sendNotifications": true
}

Note

Returns the full updated Event object on success. See the Event schema for all fields.

Error Responses

StatusCodeDescription
400Invalid request body, or eventId is not a valid UUID
403ACCESS_DENIEDToken lacks edit permissions
403TOKEN_DENIEDToken-level restriction
403TIMEFRAME_DENIEDEvent falls outside allowed timeframe
404EVENT_NOT_FOUNDEvent does not exist
404CALENDAR_NOT_FOUNDCalendar not found
DELETE/api/access/calendar/events/{eventId}Bearer Token

Delete Event

Deletes a calendar event.

Parameters

ParameterInTypeDescription
eventIdPathstring (UUID)Public event ID
notifyAttendeesQueryboolSend cancellation notifications (default: true)

Response 200 OK

{
"success": true,
"message": "Event deleted"
}

Error Responses

StatusDescription
400Invalid event ID format (not a valid UUID)
404Event not found or deletion failed
POST/api/access/calendar/events/{eventId}/respondBearer Token

Respond to Event

Responds to an event invitation (accept, decline, or tentatively accept).

Request Body

FieldTypeRequiredDescription
statusstringYesResponse status (see below)
commentstringNoOptional comment with the response
sendNotificationboolNoSend notification to organizer (default: true)

Valid Status Values

ValueDescription
acceptedAccept the invitation
declinedDecline the invitation
tentativeTentatively accept
{
"status": "accepted",
"comment": "Looking forward to it!",
"sendNotification": true
}

Note

Returns the full updated Event object on success. See the Event schema for all fields.

Error Responses

StatusDescription
400Invalid event ID format (not a valid UUID)
400Invalid status value — must be one of: accepted, declined, tentative
404Event not found or response failed