Summary
Google Calendar API v3 is a RESTful HTTP API for managing Google Calendar resources including calendars, events, ACL rules, calendar lists, free/busy queries, colors, channels, and user settings. All endpoints are accessed via HTTPS at https://www.googleapis.com/calendar/v3.
Transport
protocols:
- http
addressing:
base_url: https://www.googleapis.com/calendar/v3
auth:
type: null # UNRESOLVED: source references "authenticated user" and "domain-wide delegation" but does not specify the auth mechanism or token format
Traits
# - queryable (GET methods return resource state)
Actions
# --- Acl ---
- id: acl_delete
label: Delete ACL Rule
kind: action
transport: http
http:
method: DELETE
path: /calendars/{calendarId}/acl/{ruleId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: ruleId
type: string
description: ACL rule identifier
- id: acl_get
label: Get ACL Rule
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}/acl/{ruleId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: ruleId
type: string
description: ACL rule identifier
- id: acl_insert
label: Insert ACL Rule
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/acl
params:
- name: calendarId
type: string
description: Calendar identifier
- id: acl_list
label: List ACL Rules
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}/acl
params:
- name: calendarId
type: string
description: Calendar identifier
- id: acl_patch
label: Patch ACL Rule
kind: action
transport: http
http:
method: PATCH
path: /calendars/{calendarId}/acl/{ruleId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: ruleId
type: string
description: ACL rule identifier
- id: acl_update
label: Update ACL Rule
kind: action
transport: http
http:
method: PUT
path: /calendars/{calendarId}/acl/{ruleId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: ruleId
type: string
description: ACL rule identifier
- id: acl_watch
label: Watch ACL Changes
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/acl/watch
params:
- name: calendarId
type: string
description: Calendar identifier
# --- CalendarList ---
- id: calendar_list_delete
label: Delete Calendar from List
kind: action
transport: http
http:
method: DELETE
path: /users/me/calendarList/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_list_get
label: Get Calendar from List
kind: action
transport: http
http:
method: GET
path: /users/me/calendarList/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_list_insert
label: Insert Calendar into List
kind: action
transport: http
http:
method: POST
path: /users/me/calendarList
- id: calendar_list_list
label: List Calendars
kind: action
transport: http
http:
method: GET
path: /users/me/calendarList
- id: calendar_list_patch
label: Patch Calendar List Entry
kind: action
transport: http
http:
method: PATCH
path: /users/me/calendarList/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_list_update
label: Update Calendar List Entry
kind: action
transport: http
http:
method: PUT
path: /users/me/calendarList/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_list_watch
label: Watch Calendar List Changes
kind: action
transport: http
http:
method: POST
path: /users/me/calendarList/watch
# --- Calendars ---
- id: calendar_clear
label: Clear Primary Calendar
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/clear
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_delete
label: Delete Secondary Calendar
kind: action
transport: http
http:
method: DELETE
path: /calendars/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_get
label: Get Calendar Metadata
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_insert
label: Create Secondary Calendar
kind: action
transport: http
http:
method: POST
path: /calendars
- id: calendar_patch
label: Patch Calendar Metadata
kind: action
transport: http
http:
method: PATCH
path: /calendars/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
- id: calendar_update
label: Update Calendar Metadata
kind: action
transport: http
http:
method: PUT
path: /calendars/{calendarId}
params:
- name: calendarId
type: string
description: Calendar identifier
# --- Channels ---
- id: channel_stop
label: Stop Watching Channel
kind: action
transport: http
http:
method: POST
path: /channels/stop
# --- Colors ---
- id: colors_get
label: Get Color Definitions
kind: action
transport: http
http:
method: GET
path: /colors
# --- Events ---
- id: event_delete
label: Delete Event
kind: action
transport: http
http:
method: DELETE
path: /calendars/{calendarId}/events/{eventId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: eventId
type: string
description: Event identifier
- id: event_get
label: Get Event
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}/events/{eventId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: eventId
type: string
description: Event identifier
- id: event_import
label: Import Event
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/events/import
params:
- name: calendarId
type: string
description: Calendar identifier
- id: event_insert
label: Create Event
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/events
params:
- name: calendarId
type: string
description: Calendar identifier
- id: event_instances
label: Get Event Instances
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}/events/{eventId}/instances
params:
- name: calendarId
type: string
description: Calendar identifier
- name: eventId
type: string
description: Recurring event identifier
- id: event_list
label: List Events
kind: action
transport: http
http:
method: GET
path: /calendars/{calendarId}/events
params:
- name: calendarId
type: string
description: Calendar identifier
- id: event_move
label: Move Event
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/events/{eventId}/move
params:
- name: calendarId
type: string
description: Source calendar identifier
- name: eventId
type: string
description: Event identifier
- name: destination
type: string
description: Destination calendar identifier (required query parameter)
- id: event_patch
label: Patch Event
kind: action
transport: http
http:
method: PATCH
path: /calendars/{calendarId}/events/{eventId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: eventId
type: string
description: Event identifier
- id: event_quick_add
label: Quick Add Event
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/events/quickAdd
params:
- name: calendarId
type: string
description: Calendar identifier
- name: text
type: string
description: Event description text (required query parameter)
- id: event_update
label: Update Event
kind: action
transport: http
http:
method: PUT
path: /calendars/{calendarId}/events/{eventId}
params:
- name: calendarId
type: string
description: Calendar identifier
- name: eventId
type: string
description: Event identifier
- id: event_watch
label: Watch Event Changes
kind: action
transport: http
http:
method: POST
path: /calendars/{calendarId}/events/watch
params:
- name: calendarId
type: string
description: Calendar identifier
# --- Freebusy ---
- id: freebusy_query
label: Query Free/Busy
kind: action
transport: http
http:
method: POST
path: /freeBusy
# --- Settings ---
- id: settings_get
label: Get User Setting
kind: action
transport: http
http:
method: GET
path: /users/me/settings/{setting}
params:
- name: setting
type: string
description: Setting identifier
- id: settings_list
label: List User Settings
kind: action
transport: http
http:
method: GET
path: /users/me/settings
- id: settings_watch
label: Watch Settings Changes
kind: action
transport: http
http:
method: POST
path: /users/me/settings/watch
Feedbacks
# UNRESOLVED: response schemas are not documented in source — source references separate "resource representation" pages
# GET endpoints return resource representations (ACL rules, calendars, events, settings, colors)
# Watch endpoints return channel notifications for resource changes
Variables
# UNRESOLVED: settable parameters not detailed in source — resource representation pages not included
Events
# Watch endpoints (acl/watch, calendarList/watch, events/watch, settings/watch)
# register push notification channels for resource changes.
# Channel notification delivery mechanism not documented in source.
# UNRESOLVED: push notification payload format and delivery details not in source
Macros
# Source recommends get+update pattern instead of patch for quota efficiency.
# UNRESOLVED: no explicit multi-step sequences defined in source
Safety
confirmation_required_for: []
interlocks: []
# Note: calendar_clear deletes all events on a primary calendar — potentially destructive.
# UNRESOLVED: no explicit safety warnings or interlock procedures in source
Notes
- All URIs are relative to
https://www.googleapis.com/calendar/v3unless otherwise noted. - PATCH methods consume three quota units each; the source recommends using GET followed by UPDATE instead of PATCH for quota efficiency.
calendars.clearis only for primary calendars;calendars.deleteis for secondary calendars.events.importonly supports events witheventTypeofdefault.events.moveonly supportsdefaultevents —birthday,focusTime,fromGmail,outOfOffice, andworkingLocationevents cannot be moved.- For
calendar_insert, source recommends authenticating as the intended data owner and warns against using service accounts as data owners since ownership cannot be transferred. - Resource representation details (request/response body schemas) are on separate pages not included in this source.
Provenance
source_domains:
- developers.google.com
source_urls:
- https://developers.google.com/workspace/calendar/api/v3/reference
- https://developers.google.com/workspace/calendar/api/guides/overview
- https://developers.google.com/workspace/calendar/caldav
retrieved_at: 2026-06-02T22:07:25.400Z
last_checked_at: 2026-06-02T22:07:25.400Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:07:25.400Z
matched_actions: 37
action_count: 37
confidence: medium
summary: "All 37 spec actions traced to source (dip-safe re-verify). (14 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "authentication mechanism not fully documented in source — source references \"authenticated user\" and \"domain-wide delegation of authority\" but does not specify OAuth2 flow, scopes, or token format"
- "rate limits and quota units not fully specified beyond mention that patch requests consume three quota units"
- "request/response body schemas not included in source — source references separate \"resource representation\" pages"
- "source references \"authenticated user\" and \"domain-wide delegation\" but does not specify the auth mechanism or token format"
- "response schemas are not documented in source — source references separate \"resource representation\" pages"
- "settable parameters not detailed in source — resource representation pages not included"
- "push notification payload format and delivery details not in source"
- "no explicit multi-step sequences defined in source"
- "no explicit safety warnings or interlock procedures in source"
- "authentication mechanism (OAuth2 scopes, token acquisition) not documented in source"
- "rate limit quotas and daily usage limits not specified beyond patch costing 3 units"
- "request/response body schemas not in source"
- "error codes and error response format not documented"
- "pagination parameters for list endpoints not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0