HFU Digital Docs
StarPlan APIEndpoints

Week endpoints

ISO-week occurrences with optional filters

The week endpoints expand recurring CkTimetableEvent rows into concrete occurrences for a single ISO week (Monday-to-Sunday in the server's timezone). They are powered by CourseKit's QueryService.getSchedule().

GET /v1/starplan/week/current

The week containing "now" on the server.

{
  "week":      "2026-W17",
  "dateRange": { "start": "2026-04-20T00:00:00.000Z", "end": "2026-04-26T23:59:59.999Z" },
  "occurrences": [
    {
      "eventId":         "ev…",
      "occurrenceDate":  "2026-04-22T00:00:00.000Z",
      "startTime":       "2026-04-22T08:00:00.000Z",
      "durationMin":     90,
      "originalEvent":   { "title": "Datenbanken 1", "courseId": "co…", "periodId": "ap…", "/* …rest of event metadata */": null }
    }
  ]
}

The occurrences[] shape is the CourseKit Occurrence type — see the CourseKit timetable hook reference for the full field list.

GET /v1/starplan/week/:week

Same shape, but for an explicit ISO week. The path segment must match the regex \d{4}-W(0[1-9]|[1-4]\d|5[0-3]) — for example 2026-W05, 2025-W52. Invalid values return 400 Bad Request.

curl 'https://api.hfu.digital/v1/starplan/week/2026-W17'

Filters

All four optional query parameters take a comma-separated list of UUIDs and intersect the result set:

ParamEffect
instructorIdsOnly occurrences taught by one of these instructors.
roomIdsOnly occurrences scheduled in one of these rooms.
courseIdsOnly occurrences belonging to one of these courses.
groupIdsOnly occurrences for one of these student groups (e.g. semester cohorts).
curl 'https://api.hfu.digital/v1/starplan/week/current?roomIds=ro1,ro2&courseIds=co1'

Whitespace inside the CSV list is trimmed; empty entries are dropped. Invalid UUIDs produce no occurrences for that filter (they don't 400).

Examples

Personal weekly view

If you have a list of course UUIDs the user is enrolled in, fetching the current week is a single call:

const params = new URLSearchParams({ courseIds: enrolledCourseIds.join(',') });
const r = await fetch(
  `https://api.hfu.digital/v1/starplan/week/current?${params}`,
);
const { occurrences } = await r.json();

Lecturer schedule

curl 'https://api.hfu.digital/v1/starplan/week/current?instructorIds=<instructor-uuid>'

For a long-form per-instructor list (not just the current week), see GET /v1/starplan/instructors/:id/courses in Catalog endpoints.

On this page