Skip to main content
The Housing module manages an event’s hotel accommodation the way organizers actually contract it: you negotiate n rooms of one room type per night with a hotel, watch pickup against that contract, and keep a rooming list of who is staying where. It is an optional module, off by default and enabled per event.

The model

Housing is built from four things, each layered on the last:

Hotels

The properties you house people at. Each hotel carries its own room types.

Room types

Deluxe King, Twin — the unit housing is managed in. Never a physical room number.

Room blocks

A contract: n rooms of one room type per night, with rates as contract notes and pickup tracked against it.

Stays

One attendee’s reservation — hotel, room type, nights, hotel confirmation, check-in. The rooming list is the stays list.
Two ideas shape everything here:
  • A room type is not a physical room. Inventory is a per-night count on a room type, the way a ticket type’s capacity is a count — not a list of door numbers. If the hotel eventually assigns “Room 1208”, that is an optional late detail recorded on the stay, never something a reservation depends on.
  • You negotiate with the hotel, not with a counter. Contracted counts are a promise; exceeding one is a fact the console flags so you can renegotiate — never an error that blocks a booking.

Enable the module

Housing is off by default. Open any of its pages — Hotels, Room blocks or Stays in the event navigation — and the enable wall appears; one click switches it on for this event. Enabling is one-way and per event.

Suggested setup order

1

Add the hotel

Create each property you have contracted rooms with on the Hotels page.
2

Add its room types

On the hotel’s page, add the room types your contract covers — Deluxe King, Twin — with how many guests each sleeps.
3

Record the room block

Create a room block per contract: pick the hotel and room type, then enter the contracted count and rate for each night.
4

Arrange stays

Place attendees with stays — each one optionally attributed to a block, which is what drives the block’s pickup numbers.
You can arrange stays without any room block at all — blocks are the contract-tracking layer, not a prerequisite. Add them whenever the contract exists.

Where housing shows up elsewhere

  • The attendee detail page gains a Housing section showing that person’s stays.
  • Every stay change lands on the attendee’s activity timeline, alongside their registration history.
  • Automations can react to a stay being confirmed by the hotel or the guest checking in — “email the guest their hotel confirmation” is a flow you build, not a special feature.
  • The stays table exports to CSV — that export is your rooming list for the hotel.

Rules to know

  • Room type ≠ physical room; a stay never requires a room number to exist.
  • Pickup and availability are always derived from the actual stays — they cannot drift and cannot be edited by hand.
  • Going over a contracted count is flagged, never blocked.
  • Rates and currency on blocks are contract notes — nothing is charged to anyone through this module.
  • Hotels, room types and blocks archive rather than delete; who was housed where must stay answerable.