Facilities

Part of the IP4CMS portal. ← All module guides

What it's for β€” Facilities is where you register the bookable amenities your community offers β€” pool houses, tennis courts, club lounges, function venues β€” and control how residents reserve them. Each facility can be booked one of two ways: internally (the portal generates time slots from your opening hours and handles the reservations, approvals and cancellations) or via an external booking link (the portal just sends residents off to a third-party booking site). For internal facilities, the module also manages availability, recurring opening-hours rules, and the full booking lifecycle that residents see in the member portal.

Where to find it β€” Main portal menu under Facilities (route /app/facilities, which opens the list at /app/facilities/list). From there you also reach Facility Bookings (/app/facilities/bookings) and the Booking Calendar (/app/facilities/booking-calendar).

Before you start

Key tasks

Create a facility

  1. Go to Facilities and click Add Facility (visible only if you can manage facilities).
  2. The editor opens as a stepper. On the Facility Info step, fill in:
  1. Click Next (or Save Facility). The facility saves; a held cover photo uploads immediately after.
For an external-link facility you're essentially done after this step β€” there are no internal slots to configure. For an internal facility, continue to Facility Setup and Facility Availability (the next two steps), which only appear once the facility is saved and the booking engine is licensed.

Configure opening hours (Facility Setup)

This step turns your weekly opening hours into the recurring slot rules that drive availability. It only appears for internal facilities once saved.

  1. Open the saved facility and go to the Facility Setup step.
  2. Choose an opening mode:
  1. Changes save automatically (a status line shows "Saving changes…" then "Changes saved automatically"). On save the screen replaces the facility's recurring slot rules with the ones you've defined and regenerates the booking slots residents see.
The setup screen is a simplified front end for slot rules: it shows one time window per day. If a facility already has rules with multiple windows on the same day (e.g. a morning and an evening session), you'll see a notice that only the first window per day is displayed β€” editing here may overwrite the extra windows. Internally, days that share the same opening/closing times are grouped into one rule named "Facility - Schedule n".

Manage availability and booking slots (Facility Availability)

The Facility Availability step shows a calendar of the facility's generated booking slots and any manual availability, colour-coded by source.

Generating slots requires the facilities:availability:manage permission. The availability you generate here is exactly what residents browse and book against in the member portal.

Use the Booking Calendar

Facilities β†’ Booking Calendar gives a cross-facility view of all bookings, in either a List or Calendar layout.

  1. Use the facility checklist and status checklist (Pending, Approved, Confirmed, Rejected, Cancelled, Completed) to filter what's shown. Bookings are colour-coded by status.
  2. In Calendar view, click an event to open its Booking Details.
  3. From a booking you can Approve, Reject or Cancel it (subject to your permissions and the booking's current status β€” see below).
  4. Deep-linking with a ?facilityId=… automatically narrows the calendar to that one facility.

Approve, reject or cancel a booking

You can act on bookings from Facility Bookings (/app/facilities/bookings) or the Booking Calendar.

Make a booking (admin) β€” member vs community bookings

Bookings are usually created by residents in the member portal, but an operator with facilities:bookings:manage can create one on a member's behalf via the API. When a booking is created the portal:

A confirmed booking locks the matching availability so the slot can't be double-booked.

Member vs community β€” the Available to setting decides the audience: Members (residents/members only), Community (the wider community), or Both. This is stored as two flags (members_only / community_only) and controls which residents see and can book the facility in the member portal.

How the data connects

Permissions & access

Facilities appears only if the facilities module is licensed. Internal bookings, availability and slot management additionally require facilities:bookings and feasibilities on the licence. Actions are gated by these permissions (a tenant admin has all of them):

ActionPermission
View the facility list / open a facilityfacilities:read
Create, edit, delete a facility; upload/remove its photofacilities:manage
View availability and slot rulesfacilities:availability:read
Generate/remove slots, edit availability and slot rules (Facility Setup & Availability)facilities:availability:manage
View bookings (Bookings list / Booking Calendar)facilities:bookings:read
Approve or reject a pending bookingfacilities:bookings:approve
Cancel a booking / create a booking on a member's behalffacilities:bookings:manage

Buttons (Add, Edit, Disable, Delete, Approve, Reject, Cancel) are hidden when you lack the matching permission, and the API enforces the same checks. Member booking vs admin approval: residents create bookings themselves in the member portal; if the facility has Require approval on, those bookings land as pending and stay unusable until an operator with facilities:bookings:approve approves them β€” otherwise they're confirmed automatically.

Tips & gotchas