Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Blackout Dates API
14 actions
14 updates
phrasing
extends
openapi/canvas-blackout-dates-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 14
$.info
$.paths['/v1/courses/{course_id}/blackout_dates'].get
$.paths['/v1/courses/{course_id}/blackout_dates'].put
$.paths['/v1/courses/{course_id}/blackout_dates'].post
$.paths['/v1/accounts/{account_id}/blackout_dates'].get
$.paths['/v1/accounts/{account_id}/blackout_dates'].post
$.paths['/v1/courses/{course_id}/blackout_dates/{id}'].get
$.paths['/v1/courses/{course_id}/blackout_dates/{id}'].put
$.paths['/v1/courses/{course_id}/blackout_dates/{id}'].delete
$.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].get
$.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].put
$.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].delete
$.paths['/v1/courses/{course_id}/blackout_dates/new'].get
$.paths['/v1/accounts/{account_id}/blackout_dates/new'].get
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 Blackout Dates API
version: 1.0.0
extends: openapi/canvas-blackout-dates-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: 13
- target: $.paths['/v1/courses/{course_id}/blackout_dates'].get
update:
x-apievangelist-phrasing:
intent: List a course's blackout dates
effect: read
questions:
- Which days are blocked out from scheduling in my Canvas course?
- How do I see the blackout dates set on a course for pacing?
instructions:
- text: List the blackout dates for course {course_id}.
slots:
course_id: path.course_id
- text: Show every no-class day configured on course {course_id}.
slots:
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates'].put
update:
x-apievangelist-phrasing:
intent: Sync a course's full list of blackout dates
effect: destructive
questions:
- Can I replace all of a course's blackout dates in one call?
- Will blackout dates missing from my bulk update be deleted from the course?
instructions:
- text: Replace the whole blackout date list on course {course_id} with {blackout_dates}.
slots:
course_id: path.course_id
blackout_dates: 'requestBody.blackout_dates:'
- text: Bulk sync course {course_id} blackout dates so they match {blackout_dates}.
slots:
course_id: path.course_id
blackout_dates: 'requestBody.blackout_dates:'
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates'].post
update:
x-apievangelist-phrasing:
intent: Add a blackout date to a course
effect: write
questions:
- How do I block out spring break in one course's schedule?
- Can I give a course blackout date a title like Holiday?
instructions:
- text: Add a blackout date to course {course_id} from {start_date} to {end_date} called {event_title}.
slots:
course_id: path.course_id
start_date: requestBody.start_date
end_date: requestBody.end_date
event_title: requestBody.event_title
- text: Block out {start_date} in course {course_id}.
slots:
start_date: requestBody.start_date
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates'].get
update:
x-apievangelist-phrasing:
intent: List an account's blackout dates
effect: read
questions:
- What blackout dates are set at the account level for my institution?
- Can I see sub-account-wide blackout dates?
instructions:
- text: List the blackout dates for account {account_id}.
slots:
account_id: path.account_id
- text: Show account-wide blocked days for account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates'].post
update:
x-apievangelist-phrasing:
intent: Add a blackout date to an account
effect: write
questions:
- How do I add a blackout date that applies to a whole account?
- Can I create an institution-wide holiday as a blackout date?
instructions:
- text: Add an account {account_id} blackout date from {start_date} to {end_date} titled {event_title}.
slots:
account_id: path.account_id
start_date: requestBody.start_date
end_date: requestBody.end_date
event_title: requestBody.event_title
- text: Create an account-level blackout on {start_date} for account {account_id}.
slots:
start_date: requestBody.start_date
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one blackout date in a course
effect: read
questions:
- How do I look up a single course blackout date by its id?
- What are the start and end dates of a specific blackout in my course?
instructions:
- text: Show blackout date {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Get the details of course {course_id} blackout {id}.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a course blackout date
effect: write
questions:
- Can I change the end date of an existing course blackout?
- How do I rename a blackout date in my course?
instructions:
- text: Change course {course_id} blackout {id} to end on {end_date}.
slots:
course_id: path.course_id
id: path.id
end_date: requestBody.end_date
- text: Rename blackout date {id} in course {course_id} to {event_title}.
slots:
id: path.id
course_id: path.course_id
event_title: requestBody.event_title
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a course blackout date
effect: destructive
questions:
- How do I remove a blackout date from a course?
- Can I delete one course blackout without touching the others?
instructions:
- text: Delete blackout date {id} from course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Remove course {course_id} blackout {id}.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one blackout date in an account
effect: read
questions:
- How do I fetch a single account-level blackout date?
- What dates does a particular account blackout cover?
instructions:
- text: Show blackout date {id} in account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Get account {account_id} blackout {id} details.
slots:
account_id: path.account_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update an account blackout date
effect: write
questions:
- Can I move an account-wide blackout to different dates?
- How do I edit the title of an account blackout date?
instructions:
- text: Move account {account_id} blackout {id} to start {start_date} and end {end_date}.
slots:
account_id: path.account_id
id: path.id
start_date: requestBody.start_date
end_date: requestBody.end_date
- text: Retitle account {account_id} blackout date {id} as {event_title}.
slots:
account_id: path.account_id
id: path.id
event_title: requestBody.event_title
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an account blackout date
effect: destructive
questions:
- How do I delete an account-level blackout date?
- Can I remove an institution-wide blackout I no longer need?
instructions:
- text: Delete blackout date {id} from account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Remove account {account_id} blackout {id}.
slots:
account_id: path.account_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/blackout_dates/new'].get
update:
x-apievangelist-phrasing:
intent: Initialize an unsaved course blackout date
effect: read
questions:
- What does a blank, unsaved blackout date look like for a course?
- Can I get a template blackout date object for a course before saving one?
instructions:
- text: Initialize a new unsaved blackout date for course {course_id}.
slots:
course_id: path.course_id
- text: Give me a blank blackout date template for course {course_id}.
slots:
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/blackout_dates/new'].get
update:
x-apievangelist-phrasing:
intent: Initialize an unsaved account blackout date
effect: read
questions:
- What default fields does an unsaved account blackout date have?
- Can I get an empty blackout date object for an account?
instructions:
- text: Initialize a new unsaved blackout date for account {account_id}.
slots:
account_id: path.account_id
- text: Give me a blank account blackout template for account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'