Schedule Templates
Permission node: ACADEMIC.SCHEDULE_TEMPLATESAPI: /api/v1/academic/schedule-templates
A schedule template is a reusable meeting pattern — "Mon/Wed/Fri 09:00–09:50", "Tue/Thu 13:00–14:15" — that can be applied to a section instead of entering days and times by hand each time.
Why standard patterns matter
Templates are not only a convenience. Sections built from a shared set of patterns line up cleanly, so conflict detection at registration is meaningful and rooms can be packed without gaps. Hand-entered one-off times produce overlaps that read as conflicts to the registration checker and block students for no real reason.
| Action | Endpoint |
|---|---|
| List | GET /academic/schedule-templates |
| Picker options | GET /academic/schedule-templates/dropdown |
| Get one | GET /academic/schedule-templates/{templateID} |
| Create | POST /academic/schedule-templates |
| Update | PATCH /academic/schedule-templates/{templateID} |
| Delete | DELETE /academic/schedule-templates/{templateID} |
Applying a template to a section
Scheduling is section-centric: a section owns its meeting times directly, through /academic/sections/{sectionID}/scheduling. Applying a template fills that in; it does not create a link, so editing a template afterwards does not change sections already built from it. Re-apply the template to each affected section if a pattern changes.
Sections that must meet at the same time as another — a lecture and its lab, cross-listed sections — should be linked with /academic/sections/{sectionID}/scheduling/link rather than given identical templates, so they stay together when one is moved.
Changing a template mid-term
Prefer creating a new template. Sections already scheduled keep their times either way, so editing one in place mainly risks confusing whoever next reads the list and expects it to describe what is actually running.