Entity handling desk (seat) bookings
Reservation model
| Property | |
|---|---|
id | Reservation ID |
seat_id | ID of the desk (seat) reservation is made on |
reserver_id | ID of the user who created the reservation |
type | Type of the reservation, further explanation in the Reservation Types table below |
start | Object defining when the reservation starts |
end | Object defining when the reservation ends, can be null (for assigned/ shared reservations) |
recurrence | RRULE defining a recurring reservation (e.g. multi-day hoteled, reverse_hoteledreservations, or ~~assigned~~/ shared reservation recurrences) |
reservee | Object describing the person owning the reservation |
confirmation | Indicates if there's a check-in on the reservation |
Reservation Types
There are five types of desk reservations available in Robin:
Reservation Type | Description |
|---|---|
| One-off or multi-day booking reservations, can be made on |
| Reservations that can be made only on the day of the reservation |
|
NOTE: Assigned desks and reservations are deprecated in favor of Shared Assigned Desks. If "assigned desk", "assigned reservation" or "assignee" language is used, those are always meant to be Shared Assigned Desk, |
| Reservations that indicate the desk is assigned to a particular user on particular days of the week, using The valid Can be made on |
| Hoteled reservations that can be made on top of exclusions. |
Exclusions
Exclusions are a mechanism used for assigned desk users to be able to share their desks on certain days. When an assignee knows they're not coming to the office on particular days, they can use the Share Desk option to mark the desk as available for others to reserve.
When a user has an assigned desk (either using the ~~assigned~~ or shared reservation type), based on the RRULE of their ~~assigned~~/shared reservation, the reservation gets expanded into individual instances, midnight to midnight for each day in the RRULE:

Typical assigned reservation instances for a desk with a single assignee, every day of the week
If the assignee decides not to come to the office and wants to share their desk for others to use, using the Share Desk option within Robin, they can mark which days the desk is available on, creating an exclusion on days 3-6:

User is not coming in on days 3-6
Notice that the exclusion did not cancel or remove~~assigned~~/sharedinstances of original user's reservation. Theexclusionpart of the reservation is what marks the desk as available for booking.
Other users now see the desk as available for booking and can make reverse_hoteled reservations on top of the exclusion:

Another user has now booked the desk within the exclusion period
reverse_hoteled reservations have to be fully encapsulated by the exclusion:

The last reverse_hoteled reservation cannot be made, it's not within the bounds of the exclusion
