set_student_quiz_accommodation
Apply extra time and/or extra attempts to a specific student across all or selected Classic Quizzes in a Canvas course.
Instructions
Apply extra time and/or extra attempts to a specific student across all Classic Quizzes in a course (or a specified subset). Fans out to the Canvas quiz extensions API for each quiz. New Quizzes (quiz_type quizzes.next) are skipped — use set_student_new_quiz_accommodation instead. Only applies to quizzes that exist at call time; re-run after creating new quizzes. Assignment due-date overrides are not handled here (separate fast-follow feature). Note: for courses with many quizzes this makes one Canvas API call per quiz. Partial failures are tolerated — a failure on one quiz does not abort the rest. Returns the standard fan-out envelope: separated applied[], skipped[] (each with a skip_reason), and failed[] (each with an error) arrays, a not_found list of any requested quiz_ids absent from the course, and a summary of counts. Provide user_id as the real Canvas user ID. If CANVAS_PSEUDONYMIZE_STUDENTS is enabled, call resolve_pseudonym first to obtain the real user_id from a pseudonym.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Real Canvas user ID of the student to accommodate | |
| quiz_ids | No | Limit accommodation to these specific quiz IDs. Omit to target all Classic Quizzes in the course. | |
| course_id | Yes | Canvas course ID | |
| extra_attempts | No | Additional attempts to grant beyond the quiz default. | |
| time_multiplier | No | Relative time multiplier (e.g. 1.5 for 1.5× time). extra_minutes = round(quiz.time_limit * (multiplier - 1)), minimum 1 minute. Quizzes with no time limit are skipped for extra_time (extra_attempts is still applied if provided). Mutually exclusive with extra_time_minutes. | |
| extra_time_minutes | No | Absolute extra time in minutes to add to each quiz. Mutually exclusive with time_multiplier. |