---
title: "Update Assignment Class Schedule"
method: PUT
path: "/teacher/assignments/{assignment_id}/schedules/{class_id}"
tags: ["teacher_assignments"]
---

# Update Assignment Class Schedule

`PUT /teacher/assignments/{assignment_id}/schedules/{class_id}`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/teacher/assignments/{assignment_id}/schedules/{class_id}`
- Auth: OAuth 2 (password, token URL `api/login`)

Set ONE class's dates for this devoir (per-class planning): when the
class sees it and when it is due. A past class, or a past devoir, is
read-only. On a shared devoir, a class's planning belongs to its own
teacher, and stays adjustable after the shared freeze.

## Path parameters

- `assignment_id` string, required
- `class_id` string, required

## Request body

- UpdateAssignmentClassScheduleRequest: One class's planning. Fields left out are untouched; null clears.
  - `start_date` string, date-time, nullable
  - `due_date` string, date-time, nullable

## Response `200`

Successful Response

- AssignmentClassSchedulesResponse
  - `status` string, required
  - `class_schedules` AssignmentClassScheduleOut[], required
    - `class_id` string, required
    - `class_name` string, required
    - `school_year` string, nullable
    - `is_past` boolean
    - `start_date` string, date-time, nullable
    - `due_date` string, date-time, nullable
  - `start_date` string, date-time, nullable
  - `due_date` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
