# Timetable & teacher cover

Build recurring class schedules and arrange dated teacher cover with clash checks.

Category: Academics
Guide: https://avkul.in/docs/guides/module-timetable/
Guided sample demo: https://avkul.in/docs/demo/module-timetable/
Snapshot: 11 October 2026

## Features

- Weekly and daily views
- Class and teacher filters
- Periods and rooms
- Time-overlap checks
- Dated cover
- Availability review
- History and print

## Access and setup

Intended access: Assigned account with the required permissions
- An assigned school account with the required permissions.
- The academic, student or staff setup used by this workflow.

Permission keys: timetable:view, timetable:create, timetable:delete, timetable:update

## Workflow

1. Select the section, teacher and date.
2. Create a period with its subject, time and room.
3. Resolve overlap warnings before saving.
4. Arrange dated cover and review the daily plan.

## Fields and controls

- version (string, optional)
- periodId (string, declared required)
- date (string, declared required)
- substituteStaffId (string, declared required)
- reason (string, optional)
- status ('PLANNED' | 'CONFIRMED' | 'CANCELLED', declared required)
- sectionId (string, declared required)
- dayOfWeek (number, declared required)
- periodNo (number, declared required)
- startTime (string, declared required)
- endTime (string, declared required)
- subjectId (string, optional)
- teacherStaffId (string, optional)
- roomNo (string, optional)
- periodType (string, optional)
- force (boolean, optional)
- absentStaffId (string, declared required)
- apply (boolean, optional)
- autoGenerated (boolean, optional)

## Current limits

- Workspace checks include section, teacher and room overlaps. Weekly templates retain the recurring teacher; dated cover appears in the daily view.

## Actual application access

- https://avkul.in/en/school/substitutions
- https://avkul.in/en/school/timetable

## API reference

- GET /api/v1/timetable/workspace — Read; timetable:view
- POST /api/v1/timetable/workspace/periods — Save; timetable:create
- POST /api/v1/timetable/workspace/periods/:id/delete — Remove; timetable:delete
- POST /api/v1/timetable/workspace/covers — Cover; timetable:create
- GET /api/v1/timetable/my — The caller’s own week — periods they teach, or their section’s; Authenticated scope
- GET /api/v1/timetable — Grid; timetable:view
- POST /api/v1/timetable/periods — Upsert Period; timetable:create
- DELETE /api/v1/timetable/periods/:id — Remove Period; timetable:delete
- GET /api/v1/timetable/clashes — Audit saved timetables for teacher/room/overlap clashes; timetable:view
- GET /api/v1/timetable/day-plan — A day's timetable with substitutions applied; timetable:view
- GET /api/v1/timetable/substitutions — List Substitutions; timetable:view
- POST /api/v1/timetable/substitutions/suggest — Who could cover an absent teacher (suggestions only); timetable:view
- POST /api/v1/timetable/substitutions/generate — Record cover for all of an absent teacher's periods on a date; timetable:create
- POST /api/v1/timetable/substitutions — Assign one substitute to one period on one date; timetable:create
- PATCH /api/v1/timetable/substitutions/:id/status — Set Substitution Status; timetable:update
- DELETE /api/v1/timetable/substitutions/:id — Remove Substitution; timetable:delete

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
