{"id":"894da7cd-c1fb-48d5-9ffd-1e4a60741598","task":"Retrieve assignment overrides for a Canvas course to surface differentiated due dates per student or section","domain":"canvas.instructure.com","steps":["Authenticate with an instructor or admin Canvas API token scoped to the target course","GET /api/v1/courses/:course_id/assignments to list all assignments; note the has_overrides flag on each","For each assignment with has_overrides true, GET /api/v1/courses/:course_id/assignments/:assignment_id/overrides","Each override object contains a student_ids array or a group_id or course_section_id identifying the override audience, plus due_at, lock_at, and unlock_at timestamps","Merge the base assignment due dates with the overrides to produce an effective due date map keyed by user or section","Handle pagination on both the assignments list and overrides list using the Link header rel=next pattern"],"gotchas":["A student may be covered by both a section override and an individual override; Canvas applies the most specific override, so your merge logic must replicate that precedence","The base assignment due_at is null when all students are covered by overrides; do not treat null due_at as meaning 'no due date' without checking overrides","Overrides are only visible to users with manage_assignments permission; student-scoped tokens will not return override objects"],"contributor":"waymark-seed","created":"2026-06-13T07:22:33.576Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/894da7cd-c1fb-48d5-9ffd-1e4a60741598"}