Google Calendar API
The Google Calendar API is a RESTful API that can be accessed through explicit HTTP calls or using the Google Client Libraries. The API exposes most of the features available in the Google Calendar Web interface.
The Google Calendar API is a RESTful API that can be accessed through explicit HTTP calls or using the Google Client Libraries. The API exposes most of the features available in the Google Calendar Web interface.
openapi: 3.1.0
info:
title: Google Calendar API
description: The Google Calendar API allows developers to integrate their applications with Google Calendar, enabling them to create, modify, and manage events and settings programmatically. This API is robust, offering functionalities like managing calendar lists, events, access permissions, and user settings.
version: 1.0.0
servers:
- url: https://www.googleapis.com/calendar/v3
description: Google Calendar API Server
tags:
- name: Calendar ACL Rules
- name: Calendar ACLs
- name: Calendar Events
description: Operations related to Calendarscalendaridevents
- name: Calendars
description: Operations related to Calendars
- name: Channels
- name: Colors
description: Operations related to Default
- name: Free Busy
- name: User Calendars
description: Operations related to Usersmecalendarlist
- name: User Settings
description: Operations related to Usersmesettings
paths:
/calendars/{calendarId}/acl/{ruleId}:
get:
tags:
- Calendar ACL Rules
summary: Google Get Access Control Rule
description: Returns an access control rule.
operationId: googleGetaccesscontrolrule
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: ruleId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclGetResponse'
examples:
CalendarsAclGetResponseExample:
$ref: '#/components/examples/CalendarsAclGetResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclGetResponseExample
put:
tags:
- Calendar ACL Rules
summary: Google Update Access Control Rule
description: Updates an access control rule.
operationId: googleUpdateaccesscontrolrule
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: sendNotifications
in: query
schema:
type: boolean
example: 'true'
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: ruleId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPutRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPutResponse'
examples:
CalendarsAclPutResponseExample:
$ref: '#/components/examples/CalendarsAclPutResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclPutResponseExample
patch:
tags:
- Calendar ACL Rules
summary: Google Patch Access Control Rule
description: Updates an access control rule. This method supports patch semantics.
operationId: googlePatchaccesscontrolrule
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: sendNotifications
in: query
schema:
type: boolean
example: 'true'
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: ruleId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPatchRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPatchResponse'
examples:
CalendarsAclPatchResponseExample:
$ref: '#/components/examples/CalendarsAclPatchResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclPatchResponseExample
delete:
tags:
- Calendar ACL Rules
summary: Google Delete Access Control Rule
description: Deletes an access control rule.
operationId: googleDeleteaccesscontrolrule
parameters:
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: ruleId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
responses:
'204':
description: No Content
headers:
Content-Type:
schema:
type: string
example: text/plain
content:
text/plain:
schema:
type: string
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: SuccessExample
/calendars/{calendarId}/acl:
get:
tags:
- Calendar ACLs
summary: Google Return Access Control Rules
description: Returns the rules in the access control list for the calendar.
operationId: googleReturnaccesscontrolrules
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: maxResults
in: query
schema:
type: integer
example: '54806309'
- name: pageToken
in: query
schema:
type: string
example: amet in
- name: showDeleted
in: query
schema:
type: boolean
example: 'true'
- name: syncToken
in: query
schema:
type: string
example: amet in
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclGetResponse1'
examples:
CalendarsAclGetResponse1Example:
$ref: '#/components/examples/CalendarsAclGetResponse1Example'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclGetResponse1Example
post:
tags:
- Calendar ACLs
summary: Google Insert Access Control Rule
description: Creates an access control rule.
operationId: googleInsertaccesscontrolrule
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: sendNotifications
in: query
schema:
type: boolean
example: 'true'
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclPostResponse'
examples:
CalendarsAclPostResponseExample:
$ref: '#/components/examples/CalendarsAclPostResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclPostResponseExample
/calendars/{calendarId}/acl/watch:
post:
tags:
- Calendar ACLs
summary: Google Watch Access Control Rules
description: Watch for changes to ACL resources.
operationId: googleWatchaccesscontrolrules
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: maxResults
in: query
schema:
type: integer
example: '54806309'
- name: pageToken
in: query
schema:
type: string
example: amet in
- name: showDeleted
in: query
schema:
type: boolean
example: 'true'
- name: syncToken
in: query
schema:
type: string
example: amet in
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclWatchPostRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsAclWatchPostResponse'
examples:
CalendarsAclWatchPostResponseExample:
$ref: '#/components/examples/CalendarsAclWatchPostResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsAclWatchPostResponseExample
/calendars/{calendarId}/events/{eventId}:
get:
tags:
- Calendar Events
summary: Google Get Event
description: Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.
operationId: googleGetevent
parameters:
- name: Accept
in: header
schema:
type: string
example: application/json
- name: alwaysIncludeEmail
in: query
schema:
type: boolean
example: 'true'
- name: maxAttendees
in: query
schema:
type: integer
example: '54806309'
- name: timeZone
in: query
schema:
type: string
example: amet in
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: eventId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsEventsGetResponse'
examples:
CalendarsEventsGetResponseExample:
$ref: '#/components/examples/CalendarsEventsGetResponseExample'
x-api-evangelist-certified: '2025-07-20'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsEventsGetResponseExample
put:
tags:
- Calendar Events
summary: Google Update Event
description: Updates an event.
operationId: googleUpdateevent
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: alwaysIncludeEmail
in: query
schema:
type: boolean
example: 'true'
- name: conferenceDataVersion
in: query
schema:
type: integer
example: '54806309'
- name: maxAttendees
in: query
schema:
type: integer
example: '54806309'
- name: sendNotifications
in: query
schema:
type: boolean
example: 'true'
- name: sendUpdates
in: query
schema:
type: string
example: amet in
- name: supportsAttachments
in: query
schema:
type: boolean
example: 'true'
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: eventId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsEventsPutRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsEventsPutResponse'
examples:
CalendarsEventsPutResponseExample:
$ref: '#/components/examples/CalendarsEventsPutResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsEventsPutResponseExample
patch:
tags:
- Calendar Events
summary: Google Patch Event
description: Updates an event. This method supports patch semantics.
operationId: googlePatchevent
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Accept
in: header
schema:
type: string
example: application/json
- name: alwaysIncludeEmail
in: query
schema:
type: boolean
example: 'true'
- name: conferenceDataVersion
in: query
schema:
type: integer
example: '54806309'
- name: maxAttendees
in: query
schema:
type: integer
example: '54806309'
- name: sendNotifications
in: query
schema:
type: boolean
example: 'true'
- name: sendUpdates
in: query
schema:
type: string
example: amet in
- name: supportsAttachments
in: query
schema:
type: boolean
example: 'true'
- name: alt
in: query
schema:
type: string
description: Data format for the response.
example: json
- name: fields
in: query
schema:
type: string
description: Selector specifying which fields to include in a partial response.
example: amet in
- name: key
in: query
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
example: amet in
- name: oauth_token
in: query
schema:
type: string
description: OAuth 2.0 token for the current user.
example: amet in
- name: prettyPrint
in: query
schema:
type: boolean
description: Returns response with indentations and line breaks.
example: 'true'
- name: quotaUser
in: query
schema:
type: string
description: An opaque string that represents a user for quota purposes. Must not exceed 40 characters.
example: amet in
- name: userIp
in: query
schema:
type: string
description: Deprecated. Please use quotaUser instead.
example: amet in
- name: calendarId
in: path
schema:
type: string
required: true
- name: eventId
in: path
schema:
type: string
required: true
- in: header
name: Authorization
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsEventsPatchRequest'
responses:
'200':
description: OK
headers:
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarsEventsPatchResponse'
examples:
CalendarsEventsPatchResponseExample:
$ref: '#/components/examples/CalendarsEventsPatchResponseExample'
x-microcks-operation:
delay: 100
dispatcher: FALLBACK
dispatcherRules: CalendarsEventsPatchResponseExample
delete:
tags:
- Calendar Events
summary: Google Delete Event
description: Deletes an event.
operationId: googleDeleteevent
parameters:
- name: sendNoti
# --- truncated at 32 KB (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google/refs/heads/main/openapi/google-calendar-api-openapi.yml