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:
| Param | Effect |
|---|---|
instructorIds | Only occurrences taught by one of these instructors. |
roomIds | Only occurrences scheduled in one of these rooms. |
courseIds | Only occurrences belonging to one of these courses. |
groupIds | Only 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.