List appointments for a course
Returns appointments linked to the course identified by course entity id (the id field from GET /courses, not layerId). Response items omit participants, creator, user groups, and series — see CourseAppointmentListItem.
GET
/courses/{id}/appointmentsPath parameters
idstringrequiredCourse entity ID (`id` from `GET /courses`).
Query parameters
cursorstringlimitintegermin 1 · max 100 · default: 10
Responses
200Paginated list of appointments for the course
dataCourseAppointmentListItem[]requiredShow propertiesHide properties
Array of
CourseAppointmentListItemidstringrequiredtitlestringrequirednotesstringdateTimestring<date-time>requireddurationintegerrequiredisOnlinebooleanrequiredisHybridbooleanrequiredonlineAddressstringaddressstringlocationstring | nullproviderstringappointmentLayersAppointmentLayer[]Show propertiesHide properties
Array of
AppointmentLayerlayerIdstringlayerobject | nullShow propertiesHide properties
idstringnamestringcourseobject | nullShow propertiesHide properties
idstringCourse entity ID
codestring | nullnamestringappointmentRoomsAppointmentRoomBooking[]Show propertiesHide properties
Array of
AppointmentRoomBookingroomIdstringsetupIdstring | nullroomobjectsetupobject | nullorganizerUsersAppointmentOrganizer[]Show propertiesHide properties
Array of
AppointmentOrganizerorganizerIdstringrequiredappointmentTypeobject | nullpaginationCursorPaginationrequiredShow propertiesHide properties
next_cursorstring | nullrequiredhas_morebooleanrequiredlimitintegerrequiredmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring403Forbidden
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring404Not Found
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X GET "https://fuxam.app/api/v4/courses/string/appointments"const response = await fetch("https://fuxam.app/api/v4/courses/string/appointments", {
method: "GET"
});import requests
response = requests.get(
"https://fuxam.app/api/v4/courses/string/appointments",
)Response
{
"data": [
{
"id": "string",
"title": "string",
"notes": "string",
"dateTime": "2024-01-01T00:00:00Z",
"duration": 0,
"isOnline": true,
"isHybrid": true,
"onlineAddress": "string",
"address": "string",
"location": "string",
"provider": "string",
"appointmentLayers": [
{
"layerId": "string",
"layer": {
"id": "string",
"name": "string"
},
"course": {
"id": "string",
"code": "string",
"name": "string"
}
}
],
"appointmentRooms": [
{
"roomId": "string",
"setupId": "string",
"room": {},
"setup": {}
}
],
"organizerUsers": [
{
"organizerId": "string"
}
],
"appointmentType": {}
}
],
"pagination": {
"next_cursor": "string",
"has_more": true,
"limit": 0
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}