Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Planner API
13 actions
13 updates
phrasing
extends
openapi/canvas-planner-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canvas's API. It is a proposal applied on top of the contract, not a document Canvas publishes.
What the actions change
x-apievangelist-phrasing
Targets 13
$.info
$.paths['/v1/planner/items'].get
$.paths['/v1/users/{user_id}/planner/items'].get
$.paths['/v1/planner_notes'].get
$.paths['/v1/planner_notes'].post
$.paths['/v1/planner_notes/{id}'].get
$.paths['/v1/planner_notes/{id}'].put
$.paths['/v1/planner_notes/{id}'].delete
$.paths['/v1/planner/overrides'].get
$.paths['/v1/planner/overrides'].post
$.paths['/v1/planner/overrides/{id}'].get
$.paths['/v1/planner/overrides/{id}'].put
$.paths['/v1/planner/overrides/{id}'].delete
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Canvas LMS REST Planner API
version: 1.0.0
extends: openapi/canvas-planner-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 12
- target: $.paths['/v1/planner/items'].get
update:
x-apievangelist-phrasing:
intent: List my planner items
effect: read
questions:
- What assignments and to-dos are on my Canvas planner this week?
- Can I filter my planner to only new activity or incomplete items?
instructions:
- text: List my planner items from {start_date} to {end_date}.
slots:
start_date: query.start_date
end_date: query.end_date
- text: Show my planner items filtered by {filter}.
slots:
filter: query.filter
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/planner/items'].get
update:
x-apievangelist-phrasing:
intent: List a specific user's planner items
effect: read
questions:
- As an observer, how do I see a student's planner items?
- Can I pull another user's planner for selected courses only?
instructions:
- text: List planner items for user {user_id}.
slots:
user_id: path.user_id
- text: Show user {user_id}'s planner between {start_date} and {end_date} for {context_codes}.
slots:
user_id: path.user_id
start_date: query.start_date
end_date: query.end_date
context_codes: query.context_codes
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner_notes'].get
update:
x-apievangelist-phrasing:
intent: List my planner notes
effect: read
questions:
- Which personal to-do notes have I added to my planner?
- Can I list planner notes for one course within a date range?
instructions:
- text: List my planner notes.
- text: Show my planner notes for {context_codes} between {start_date} and {end_date}.
slots:
context_codes: query.context_codes
start_date: query.start_date
end_date: query.end_date
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner_notes'].post
update:
x-apievangelist-phrasing:
intent: Create a planner note
effect: write
questions:
- How do I add a personal to-do to my planner?
- Can I link a planner note to a course?
instructions:
- text: Add a planner note {title} on {todo_date}.
slots:
title: requestBody.title
todo_date: requestBody.todo_date
- text: Create a planner note {title} for course {course_id} with details {details}.
slots:
title: requestBody.title
course_id: requestBody.course_id
details: requestBody.details
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner_notes/{id}'].get
update:
x-apievangelist-phrasing:
intent: Show a planner note
effect: read
questions:
- How do I read one of my planner notes by its id?
- What date is a specific planner note set for?
instructions:
- text: Show planner note {id}.
slots:
id: path.id
- text: Get the details of my planner note {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner_notes/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a planner note
effect: write
questions:
- Can I move a planner note to a different day?
- How do I edit the title or details of a planner note?
instructions:
- text: Move planner note {id} to {todo_date}.
slots:
id: path.id
todo_date: requestBody.todo_date
- text: Rename planner note {id} to {title}.
slots:
id: path.id
title: requestBody.title
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner_notes/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a planner note
effect: destructive
questions:
- How do I delete a to-do note from my planner?
- Can I remove a planner note I no longer need?
instructions:
- text: Delete planner note {id}.
slots:
id: path.id
- text: Remove my planner note {id} permanently.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner/overrides'].get
update:
x-apievangelist-phrasing:
intent: List my planner overrides
effect: read
questions:
- Which planner items have I marked complete or dismissed?
- Can I see all my planner visibility overrides?
instructions:
- text: List my planner overrides.
- text: Show every planner item I've marked done or dismissed.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner/overrides'].post
update:
x-apievangelist-phrasing:
intent: Mark a planner item complete or dismissed
effect: write
questions:
- How do I mark an assignment as done on my planner?
- Can I dismiss a planner item so it stops showing up?
instructions:
- text: Mark {plannable_type} {plannable_id} as complete {marked_complete} on my planner.
slots:
plannable_type: requestBody.plannable_type
plannable_id: requestBody.plannable_id
marked_complete: requestBody.marked_complete
- text: Dismiss {plannable_type} {plannable_id} from my planner, dismissed {dismissed}.
slots:
plannable_type: requestBody.plannable_type
plannable_id: requestBody.plannable_id
dismissed: requestBody.dismissed
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner/overrides/{id}'].get
update:
x-apievangelist-phrasing:
intent: Show a planner override
effect: read
questions:
- How do I check the state of one planner override?
- Is a given planner override marked complete or dismissed?
instructions:
- text: Show planner override {id}.
slots:
id: path.id
- text: Get planner override {id} and its completion status.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner/overrides/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a planner override
effect: write
questions:
- Can I un-mark a planner item I previously marked complete?
- How do I restore a dismissed item to my planner?
instructions:
- text: Set planner override {id} marked complete to {marked_complete}.
slots:
id: path.id
marked_complete: requestBody.marked_complete
- text: Change planner override {id} dismissed to {dismissed}.
slots:
id: path.id
dismissed: requestBody.dismissed
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/planner/overrides/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a planner override
effect: destructive
questions:
- How do I delete a planner override entirely?
- Can I remove the override record on a planner item?
instructions:
- text: Delete planner override {id}.
slots:
id: path.id
- text: Remove override {id} from my planner.
slots:
id: path.id
method: generated
generated: '2026-10-01'