Blackout Dates API

Copyright (C) 2022 - present Instructure, Inc.

This file is part of Canvas.

Canvas is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.

Canvas is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

API for accessing blackout date information.

A BlackoutDate object looks like:

// Blackout dates are used to prevent scheduling assignments on a given date in
// course pacing.
{
  // the ID of the blackout date
  "id": 1,
  // the context owning the blackout date
  "context_id": 1,
  "context_type": "Course",
  // the start date of the blackout date
  "start_date": "2022-01-01",
  // the end date of the blackout date
  "end_date": "2022-01-02",
  // title of the blackout date
  "event_title": "some title"
}

List blackout dates BlackoutDatesController#index

GET /api/v1/courses/:course_id/blackout_dates

Scope: url:GET|/api/v1/courses/:course_id/blackout_dates

GET /api/v1/accounts/:account_id/blackout_dates

Scope: url:GET|/api/v1/accounts/:account_id/blackout_dates

Returns the list of blackout dates for the current context.

Returns a list of BlackoutDate objects

Get a single blackout date BlackoutDatesController#show

GET /api/v1/courses/:course_id/blackout_dates/:id

Scope: url:GET|/api/v1/courses/:course_id/blackout_dates/:id

GET /api/v1/accounts/:account_id/blackout_dates/:id

Scope: url:GET|/api/v1/accounts/:account_id/blackout_dates/:id

Returns the blackout date with the given id.

Returns a BlackoutDate object

New Blackout Date BlackoutDatesController#new

GET /api/v1/courses/:course_id/blackout_dates/new

Scope: url:GET|/api/v1/courses/:course_id/blackout_dates/new

GET /api/v1/accounts/:account_id/blackout_dates/new

Scope: url:GET|/api/v1/accounts/:account_id/blackout_dates/new

Initialize an unsaved Blackout Date for the given context.

Returns a BlackoutDate object

Create Blackout Date BlackoutDatesController#create

POST /api/v1/courses/:course_id/blackout_dates

Scope: url:POST|/api/v1/courses/:course_id/blackout_dates

POST /api/v1/accounts/:account_id/blackout_dates

Scope: url:POST|/api/v1/accounts/:account_id/blackout_dates

Create a blackout date for the given context.

Request Parameters:

Parameter Type Description
start_date Date

The start date of the blackout date.

end_date Date

The end date of the blackout date.

event_title string

The title of the blackout date.

Returns a BlackoutDate object

Update Blackout Date BlackoutDatesController#update

PUT /api/v1/courses/:course_id/blackout_dates/:id

Scope: url:PUT|/api/v1/courses/:course_id/blackout_dates/:id

PUT /api/v1/accounts/:account_id/blackout_dates/:id

Scope: url:PUT|/api/v1/accounts/:account_id/blackout_dates/:id

Update a blackout date for the given context.

Request Parameters:

Parameter Type Description
start_date Date

The start date of the blackout date.

end_date Date

The end date of the blackout date.

event_title string

The title of the blackout date.

Returns a BlackoutDate object

Delete Blackout Date BlackoutDatesController#destroy

DELETE /api/v1/courses/:course_id/blackout_dates/:id

Scope: url:DELETE|/api/v1/courses/:course_id/blackout_dates/:id

DELETE /api/v1/accounts/:account_id/blackout_dates/:id

Scope: url:DELETE|/api/v1/accounts/:account_id/blackout_dates/:id

Delete a blackout date for the given context.

Returns a BlackoutDate object

Update a list of Blackout Dates BlackoutDatesController#bulk_update

PUT /api/v1/courses/:course_id/blackout_dates

Scope: url:PUT|/api/v1/courses/:course_id/blackout_dates

Create, update, and delete blackout dates to sync the db with the incoming data.

Request Parameters:

Parameter Type Description
blackout_dates: string
blackout_date, …

An object containing the array of BlackoutDates we want to exist after this operation. For array entries, if it has an id it will be updated, if not created, and if an existing BlackoutDate id is missing from the array, it will be deleted.