---
title: "Add a calendar collection"
method: POST
path: "/api/apps/room_booking/{installation_id}/collections"
tags: ["Apps - Room Booking"]
---

# Add a calendar collection

`POST /api/apps/room_booking/{installation_id}/collections`

## Request

- Base URL: `https://trmnl.com`
- URL: `https://trmnl.com/api/apps/room_booking/{installation_id}/collections`
- Auth: HTTP bearer

resource_ids are calendar ids from listRoomBookingCalendars; at least one is needed.

## Request body

- object
  - `name` string, required
  - `collection_type` 'any' | 'rooms' | 'spaces' | 'desks' | 'desk_pools' | 'parking_spaces' | 'vehicles' | 'equipment' | 'people' | 'other': rooms when left out
  - `display_layout` 'list' | 'grid': list when left out
  - `show_booking_qr` boolean
  - `show_company_logo` boolean
  - `resource_ids` string[], required: Calendar ids, as listRoomBookingCalendars answers them

## Response `200`

Created

- object
  - `data` RoomBookingCollection
    - `id` integer
    - `name` string
    - `collection_type` 'any' | 'rooms' | 'spaces' | 'desks' | 'desk_pools' | 'parking_spaces' | 'vehicles' | 'equipment' | 'people' | 'other'
    - `display_layout` 'list' | 'grid'
    - `show_booking_qr` boolean
    - `show_company_logo` boolean
    - `resource_ids` string[]: The calendars in it
    - `bound_device_ids` integer[]: Devices showing this collection
    - `url_display_url` string, nullable
    - `public_booking_token` string, nullable
    - `public_booking_url` string, nullable

## Other responses

- `401`: Unauthorized
- `402`: Billing is locked until the subscription is settled
- `404`: Installation belongs to another user
- `422`: A layout the collection does not have

---

[API](https://skmtc.dev/trmnl/apis/trmnl-api.md) · [All operations](https://skmtc.dev/trmnl/apis/trmnl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trmnl/apis/trmnl-api/revisions/66179e6d663b?raw)
