Group Reservations

Group Reservations allow temporary assignment of groups to a person within a specific timeframe. This functionality is especially useful for granting access to resources or areas controlled by group permissions on a temporary basis.

A group reservation is a more extended assignment where a person is assigned to group for a longer period of time. Which effectively grants them access to multiple doors or areas that the group has permissions for, over a longer period of time than a reservation. This would be more appropriate for people who need access for the length of a project, contract or job role.

If you would like to provide short term access to a person to specific channels then please look at Reservations.

Listing all group reservations

Scopes required : account.person or account.person.readonly

Returns a list of all future or current group reservations in your account.

GET /api/3/group_reservations

Example Response

[
  {
    "id": 1,
    "person_id": 799132,
    "start_time": "2024-04-25T04:49:00-05:00",
    "end_time": "2024-04-26T05:49:00-05:00",
    "state": "pending",
    "group_ids": [
      45796
    ],    
    "created_at": "2024-04-22T09:28:35-05:00",
    "updated_at": "2024-04-22T09:28:35-05:00",
  }
]

Remember that this endpoint might be paginated


Create a group reservation

Scopes required : account.person

POST /api/3/group_reservations

You can create a GroupReservation for any time in the future. A single GroupReservation can last for any duration, from 1 minute to the maximum duration defined by your access control policies. Unlike individual reservations, GroupReservations are not restricted to a single day and can extend over multiple days or weeks, accommodating long-term access needs based on group membership.

For access requirements that span multiple, non-consecutive time periods, you may create separate GroupReservations for each period. This approach provides flexibility in managing group access to doors or resources for scenarios such as recurring events or projects with phased access needs.

Once you've created your group reservation, remember to call Sync to promote your changes to the channels.

Example Payload

{
  "group_ids": [101, 102],
  "person_id": 123,
  "start_time": "2024-01-01T09:00:00+01:00",
  "end_time": "2024-07-01T17:00:00+01:00"
}

Example Response

{
  "id": 15,
  "person_id": 123,
  "start_time": "2024-01-01T09:00:00+01:00",
  "end_time": "2024-07-01T17:00:00+01:00",
  "created_at": "2023-12-20T10:00:00+01:00",
  "updated_at": "2023-12-20T10:00:00+01:00",
  "group_ids": [101, 102]
}

Delete a group reservation

Scopes required : account.person

Example Request

DELETE /api/3/group_reservations/:id

This will delete the group reservation and remove any associated groups with the person.

Example Response

{ "result" : "ok" }

Once you've deleted your group reservation, remember to call Sync to promote your changes to the channels.