Timetables API

The Timetables module manages class and course schedules.

Model

{
  "id": "uuid",
  "name": "Semester 1 Timetable",
  "academic_session_id": "session-uuid",
  "semester_id": "semester-uuid",
  "class_id": "class-uuid",
  "status": "active",
  "effective_from": "2024-09-01",
  "effective_to": "2024-12-31",
  "details": [...],
  "team_id": "team-uuid"
}

Timetable Detail

Individual schedule slots:

{
  "id": "uuid",
  "timetable_id": "timetable-uuid",
  "day_of_week_id": "day-uuid",
  "period_id": "period-uuid",
  "course_id": "course-uuid",
  "teacher_id": "teacher-uuid",
  "room_id": "room-uuid"
}

Endpoints

Standard CRUD

Method

Endpoint

Description

POST

/api/timetables/list

List timetables

GET

/api/timetables/:id

Get timetable

POST

/api/timetables

Create timetable

PUT

/api/timetables/:id

Update timetable

DELETE

/api/timetables/:id

Delete timetable

Schedule Management

Get Schedule:

GET /api/timetables/:id/schedule

Update Schedule:

PUT /api/timetables/update-schedule

Save Details:

POST /api/timetables/save-details

Import/Export

Validate Import:

POST /api/timetables/validate-import

Import Schedule:

POST /api/timetables/import-schedule

Export Schedule:

GET /api/timetables/:id/export

Duplicate

Duplicate Timetable:

POST /api/timetables/duplicate

Class Schedule

Get schedule for a specific class:

GET /api/timetables/class-schedule?class_id=xxx&date=2024-01-15

Generate

Trigger automatic schedule generation:

POST /api/timetables/generate

Periods

Time periods for the day. See Periods API.

Days of Week

Day definitions. See Days of Week API.