Canvas Calendar Events API

The Calendar Events API from Canvas — 8 operation(s) for calendar events.

Operations 12

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/calendar_events List my calendar events · List calendar events #
Ask an LLM
“What's on my Canvas calendar between two dates?”
“Can I list only assignments, or only events, for certain courses?”
Tell an agent
List my calendar events from {start_date} to {end_date}.
Show my {type} calendar items for {context_codes}.
POST /v1/calendar_events Create a calendar event · Create a calendar event #
Ask an LLM
“How do I add an event to a course calendar?”
“Can I make a recurring calendar event that repeats weekly?”
Tell an agent
Create a calendar event {title} on {context_code} starting {start_at}.
Schedule {title} for {context_code} from {start_at} to {end_at} at {location_name}.
GET /v1/users/{user_id}/calendar_events List another user's calendar events · List calendar events for a user #
Ask an LLM
“As a parent observer, can I see my student's calendar?”
“How do I list a specific user's events and assignments in a date range?”
Tell an agent
List calendar events for user {user_id}.
Show user {user_id}'s calendar from {start_date} to {end_date}.
GET /v1/calendar_events/{id} Get one calendar event or assignment · Get a single calendar event or assignment #
Ask an LLM
“How do I see the full details of a single calendar entry?”
“Can I look up one calendar event by its id?”
Tell an agent
Show calendar event {id}.
Get the details of calendar entry {id}.
PUT /v1/calendar_events/{id} Update a calendar event · Update a calendar event #
Ask an LLM
“Can I move an existing event to a new time or location?”
“How do I change every event in a recurring series instead of just one?”
Tell an agent
Move calendar event {id} to start at {start_at}.
Rename event {id} to {title}, applying to {which} in the series.
DELETE /v1/calendar_events/{id} Delete a calendar event · Delete a calendar event #
Ask an LLM
“How do I cancel an event and tell attendees why?”
“Can I delete just one occurrence of a recurring event?”
Tell an agent destructive · confirm first
Delete calendar event {id}.
Cancel event {id} with reason {cancel_reason}.
POST /v1/calendar_events/{id}/reservations Reserve an appointment time slot · Reserve a time slot #
Ask an LLM
“How do I book an open office-hours slot?”
“Can I swap my existing booking for a different time slot?”
Tell an agent
Reserve time slot {id}.
Book slot {id} with comment {comments}, cancelling my existing booking: {cancel_existing}.
POST /v1/calendar_events/{id}/reservations/{participant_id} Reserve a time slot for a specific participant · Reserve a time slot #
Ask an LLM
“Can an instructor book an appointment slot on behalf of a particular student?”
“How do I reserve a slot for a named participant or group?”
Tell an agent
Reserve slot {id} for participant {participant_id}.
Book time slot {id} on behalf of {participant_id} with note {comments}.
POST /v1/calendar_events/save_enabled_account_calendars Choose which account calendars I see · Save enabled account calendars #
Ask an LLM
“How do I turn on account-level calendars in my calendar view?”
“Can I mark the account calendars feature as seen?”
Tell an agent
Enable account calendars {enabled_account_calendars} for me.
Save my enabled account calendars and mark the feature seen: {mark_feature_as_seen}.
POST /v1/courses/{course_id}/calendar_events/timetable Generate a course's weekly timetable · Set a course timetable #
Ask an LLM
“Can I auto-generate class meetings like Monday and Wednesday at 2pm for a course?”
“How do I set a section's weekdays and meeting times as a timetable?”
Tell an agent
Set course {course_id}'s timetable to meet on {weekdays} from {start_time} to {end_time}.
Generate weekly timetable events for course {course_id} at {location_name}.
GET /v1/courses/{course_id}/calendar_events/timetable Get a course's timetable · Get course timetable #
Ask an LLM
“What weekly class schedule was set for a course?”
“Can I read back the timetable a course was given?”
Tell an agent
Get the timetable for course {course_id}.
Show course {course_id}'s weekly meeting schedule.
POST /v1/courses/{course_id}/calendar_events/timetable_events Write timetable events directly · Create or update events directly for a course timetable #
Ask an LLM
“Can I push my own list of class meeting events into a course timetable instead of a weekly pattern?”
“How do I sync explicit timetable events for one course section?”
Tell an agent
Write timetable events {events} directly to course {course_id}.
Replace section {course_section_id}'s timetable events in course {course_id} with {events}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas:canvas-calendar-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canvas-calendar-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Calendar Events 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:


# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/openapi/canvas-calendar-events-api-openapi.yml