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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'