Get one desk (includes booking calendar)
Authorization
bearerAuth Access token from POST /auth/accessToken
In: header
Path Parameters
MongoDB ObjectId
Response Body
application/json
application/json
curl -X GET "https://example.com/desks/string"{ "code": "KS000", "success": true, "message": "string", "data": { "_id": "string", "name": "string", "index": 0, "email": "string", "status": "active", "isPublic": true, "brandId": "string", "projectId": "string", "zoneId": "string", "floorId": "string", "capacity": 0, "facilities": [ "string" ], "pictureUrls": [ "string" ], "chargeRate": { "perHour": 0, "perDay": 0 }, "config": { "dayConfig": { "Mon": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Tue": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Wed": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Thu": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Fri": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Sat": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] }, "Sun": { "availableTime": { "start": "09:00:00", "end": "18:00:00" }, "breakTimes": [ { "start": "09:00:00", "end": "18:00:00" } ] } }, "start": "string", "end": "string", "minimumLeadTime": { "minutes": 0, "hours": 0, "days": 0 }, "maxAdvanceBookingDays": 0, "maxDurationMinutes": 0, "bookMultipleDayRoom": true, "meetingConfig": { "preStartMinutes": 0, "postStartWarnMinutes": 0, "postStartExpireMinutes": 0, "preEndMinutes": 0 } } }}List desks, optionally filtered to a free time window GET
Paginated (meta returned). Availability filter: startDateTime plus EXACTLY ONE of timePeriod (preset morning/afternoon/allDay window) or endDateTime (explicit window) — mirrors the POST /meetings desk time rules. Unlike meeting-room availability search, desks with a conflicting booking are removed from the result entirely (meta.total reflects the free count); there is no unavailableReason flag on desks — every desk returned is bookable for the window. A desk whose window would run into a booking's cleaning time (the property's default; see MeetingRoom.cleanupMinutes) is removed too.
List bookings in a time window GET
Paginated. from/to are required. Use for "my bookings" screens, day timelines, payment-confirmation polling, and post-timeout reconciliation.