openapi: 3.2.0 info: title: Canvas LMS REST Account Calendars API version: v1 summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/. description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration. contact: name: Instructure Canvas url: https://canvas.instructure.com/doc/api/ license: name: AGPL-3.0 url: https://github.com/instructure/canvas-lms/blob/master/LICENSE servers: - url: https://canvas.instructure.com/api description: Instructure-hosted Canvas (canvas.instructure.com) - url: https://{canvas_host}/api description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain. variables: canvas_host: default: canvas.instructure.com description: Your institution's Canvas hostname, e.g. school.instructure.com security: - bearerAuth: [] - oauth2: [] tags: - name: Account Calendars x-resource: account_calendars externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html paths: /v1/account_calendars: get: tags: - Account Calendars operationId: list_available_account_calendars summary: List available account calendars description: 'Returns a paginated list of account calendars available to the current user. Includes visible account calendars where the user has an account association.' parameters: - name: search_term in: query schema: type: string required: false description: 'When included, searches available account calendars for the term. Returns matching results. Term must be at least 2 characters.' responses: '200': description: Success content: application/json: schema: type: array items: type: string x-canvas-declared-type: '{ "account_calendars": AccountCalendar, "total_results": "integer"}' externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html /v1/account_calendars/{account_id}: get: tags: - Account Calendars operationId: get_single_account_calendar summary: Get a single account calendar description: Get details about a specific account calendar. parameters: - name: account_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AccountCalendar' externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html put: tags: - Account Calendars operationId: update_calendar summary: Update a calendar description: 'Set an account calendar''s visibility and auto_subscribe values. Requires the `manage_account_calendar_visibility` permission on the account.' parameters: - name: account_id in: path schema: type: string required: true description: ID requestBody: required: false content: application/json: schema: type: object properties: visible: type: boolean description: 'Allow administrators with `manage_account_calendar_events` permission to create events on this calendar, and allow users to view this calendar and its events.' auto_subscribe: type: boolean description: 'When true, users will automatically see events from this account in their calendar, even if they haven''t manually added that calendar.' application/x-www-form-urlencoded: schema: type: object properties: visible: type: boolean description: 'Allow administrators with `manage_account_calendar_events` permission to create events on this calendar, and allow users to view this calendar and its events.' auto_subscribe: type: boolean description: 'When true, users will automatically see events from this account in their calendar, even if they haven''t manually added that calendar.' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AccountCalendar' externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html /v1/accounts/{account_id}/account_calendars: put: tags: - Account Calendars operationId: update_several_calendars summary: Update several calendars description: 'Set visibility and/or auto_subscribe on many calendars simultaneously. Requires the `manage_account_calendar_visibility` permission on the account. Accepts a JSON array of objects containing 2-3 keys each: `id` (the account''s id, required), `visible` (a boolean indicating whether the account calendar is visible), and `auto_subscribe` (a boolean indicating whether users should see these events in their calendar without manually subscribing). Returns the count of updated accounts.' parameters: - name: account_id in: path schema: type: string required: true description: ID responses: '200': description: Success, no content returned externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html get: tags: - Account Calendars operationId: list_all_account_calendars summary: List all account calendars description: 'Returns a paginated list of account calendars for the provided account and its first level of sub-accounts. Includes hidden calendars in the response. Requires the `manage_account_calendar_visibility` permission.' parameters: - name: account_id in: path schema: type: string required: true description: ID - name: search_term in: query schema: type: string required: false description: 'When included, searches all descendent accounts of provided account for the term. Returns matching results. Term must be at least 2 characters. Can be combined with a filter value.' - name: filter in: query schema: type: string enum: - visible - hidden required: false description: 'When included, only returns calendars that are either visible or hidden. Can be combined with a search term.' responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/AccountCalendar' externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html /v1/accounts/{account_id}/visible_calendars_count: get: tags: - Account Calendars operationId: count_of_all_visible_account_calendars summary: Count of all visible account calendars description: Returns the number of visible account calendars. parameters: - name: account_id in: path schema: type: string required: true description: ID responses: '200': description: Success content: application/json: schema: type: string x-canvas-declared-type: '{ "count": "integer" }' externalDocs: url: https://canvas.instructure.com/doc/api/account_calendars.html components: schemas: AccountCalendar: type: object properties: id: type: integer example: 204 description: the ID of the account associated with this calendar name: type: string example: Department of Chemistry description: the name of the account associated with this calendar parent_account_id: type: integer example: 1 description: the account's parent ID, or null if this is the root account root_account_id: type: integer example: 1 description: the ID of the root account, or null if this is the root account visible: type: boolean example: true description: whether this calendar is visible to users auto_subscribe: type: boolean example: false description: whether users see this calendar's events without needing to manually add it sub_account_count: type: integer example: 0 description: number of this account's direct sub-accounts asset_string: type: string example: account_4 description: Asset string of the account type: type: string example: account description: Object type calendar_event_url: type: string example: /accounts/2/calendar_events/%7B%7B%20id%20%7D%7D description: url to get full detailed events can_create_calendar_events: type: boolean example: true description: whether the user can create calendar events create_calendar_event_url: type: string example: /accounts/2/calendar_events description: API path to create events for the account new_calendar_event_url: type: string example: /accounts/6/calendar_events/new description: url to open the more options event editor securitySchemes: bearerAuth: type: http scheme: bearer description: 'Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html' oauth2: type: oauth2 description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html flows: authorizationCode: authorizationUrl: https://canvas.instructure.com/login/oauth2/auth tokenUrl: https://canvas.instructure.com/login/oauth2/token refreshUrl: https://canvas.instructure.com/login/oauth2/token scopes: {} externalDocs: description: Canvas LMS REST API Documentation url: https://canvas.instructure.com/doc/api/ x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json x-provenance: method: derived derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion) source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents) source_url: https://canvas.instructure.com/doc/api/api-docs.json fetched: '2026-09-05' http_status: 200