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.

OpenAPI Specification

google-calendar-api-openapi.yml Raw ↑
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