Rooms in the Form Builder
Add a room field to your form. Your customers can then browse and select rooms when they fill out the form.
Where do rooms come from?
You choose one of two modes:
- Manual -- create and manage rooms directly in the form builder.
- From catalog -- link a catalog list and pull rooms, layouts, and equipment from there.
Switching between these modes resets all room data in this field:
- Switching to catalog mode pulls in rooms, layouts, and equipment from the selected catalog list.
- Switching back to manual mode clears everything.
Source mode config
| Field | Type | Values | Description |
|---|---|---|---|
| Room Source | string | Manual, Catalog list | Where rooms come from. |
| List | string | Catalog list name | Only for Catalog list mode. Select which catalog list to pull rooms from. |
Configuration tabs
The room field has these tabs:
- Settings
- Linked Fields & API
- Layouts
- Equipment
- Rooms
- Lock (only on detail forms)
Settings tab
Configure the basics: label, layout options, room selection behavior, and display settings. You can choose single selection (the customer picks one room) or multi-selection (the customer can book several rooms at once).
Settings reference
| Setting | Type | Default | Description |
|---|---|---|---|
| Field Label | text | "Room Selection" | The field label shown in the form. Required. |
| Required Field | on/off | off | Whether the customer must select a room. |
| Allow Multiple Room Selection | on/off | off | Let the customer book more than one room. |
| Show Room Prices | on/off | on | Display prices on room cards. |
| Display Layout | Grid / List | Grid | How rooms are displayed. |
| Columns (Grid View) | number | 2 | Number of grid columns (1--4). Only applies when layout type is Grid. |
| Show Filter Options | on/off | on | Show filter controls in the public form. |
Filter options
When filters are enabled, you can toggle each filter individually:
| Filter | Type | Default | Description |
|---|---|---|---|
| Filter by Capacity | on/off | on | Let customers filter rooms by capacity. |
| Filter by Equipment | on/off | on | Let customers filter rooms by equipment. |
Linked Fields & API tab
This tab controls which form fields are linked to the room selection and how room availability is checked.
Availability check
Choose how room availability is determined:
| Option | Description |
|---|---|
| No availability check | All rooms are shown as available. Linked fields are used for pricing and local filtering only. |
| External API | Room availability is checked via an external API. Linked field values are sent with each request. |
Linked form fields
Link other form fields to the room selection. These values are used for pricing, availability checks, and capacity filtering. When using an external API, linked field values are also sent to the API.
Each linked field can be marked as required -- meaning the customer must fill it in before rooms are shown (or before the availability check runs, when using an external API).
| Field | Compatible field types | Required flag | Description |
|---|---|---|---|
| Event Date | Date, Event Date | on/off | Links a date field. Used for availability checks and date-based filtering. |
| Attendees | Number, Attendees | on/off | Links a number field. Used for capacity matching. |
| Start Time | Time, Start Time, End Time | on/off | Links a time field. Required when any room uses per-hour pricing. |
| End Time | Time, Start Time, End Time | on/off | Links a time field. Required when any room uses per-hour pricing. |
When both start and end time fields are linked, the booking duration is calculated automatically. If an external API is connected, duration is also sent to the API along with start and end time.
Important: If any room uses per-hour pricing, you must link start and end time fields. The form builder will not let you save without them.
API configuration
Only visible when Availability check is set to External API.
| Setting | Description |
|---|---|
| Room Availability Source | Select or create an external data source for room availability. The source must be configured in Settings > External Data Sources. |
| API Response Mode | Whether the API returns available rooms or occupied rooms. |
| Fetch Mode | Automatic -- availability is fetched whenever linked fields change. Manual -- the customer clicks a "Show available rooms" button to search. Fields marked as required must be filled before the check runs (automatic) or before the button becomes active (manual). |
| Show time slots | Display time slots on each room card. Requires Time From / Time To fields to be mapped in the data source configuration. |
Date alternatives
Only visible when an external API source is selected. When enabled, Eventyflow can suggest nearby dates with room availability if the customer's chosen date has no rooms available. Date alternatives are configured as part of the data source setup -- see External Data Sources for details.
Seating Layouts tab
Layouts are seating configurations for a room (e.g. theater, classroom, banquet, U-shape). Manage room layouts that can be assigned to rooms.
- Add a layout: name (required), description, image, external ID.
- Edit a layout (catalog-linked layouts are read-only).
- Delete a layout (removes it from all rooms that use it).
- Reorder layouts by dragging them.
Each layout shows a thumbnail, name, source badge (catalog or manual), description, and external ID.
Layout config reference
| Field | Type | Required | Description |
|---|---|---|---|
| Layout Name | string | yes | Display name (e.g. "Theater", "U-Shape"). |
| Description | string | no | Optional description of the layout. |
| Capacity | number | no | Default capacity for this layout. Each room can override it. |
| Layout Image | string (URL) | no | Image showing the seating arrangement. |
| External ID | string | no | ID in an external system (for integrations). |
| Display Order | number | no | Sort position. Controlled by drag-and-drop. |
Equipment tab
Manage equipment items that you can assign to rooms. Examples: projector, flipchart, microphone, whiteboard.
- Add equipment: name (required), description, category.
- Edit equipment.
- Delete equipment (removes it from all assigned rooms).
- Reorder equipment by dragging.
Each equipment item shows name, source badge, description, and category.
Equipment config reference
| Field | Type | Required | Description |
|---|---|---|---|
| Equipment Name | string | yes | Display name (e.g. "Projector", "Flipchart"). |
| Description | string | no | Detailed description of the equipment. |
| Icon | string | no | Icon identifier for display. |
| Category | string | no | Equipment category. See list below. |
Equipment categories
| Category | Description |
|---|---|
| Technology | Technical equipment (laptop, projector). |
| Furniture | Tables, chairs, podiums. |
| Catering | Coffee machine, water dispenser. |
| Audio-Visual | Speakers, microphones, screens. |
| Accessibility | Wheelchair ramps, hearing loops. |
| Comfort | Air conditioning, heating. |
| Security | Fire extinguisher, first aid kit. |
| Other | Everything else. |
Rooms tab
Add and edit individual rooms.
Room config reference
| Field | Type | Required | Description |
|---|---|---|---|
| Room Name | string | yes | Display name (e.g. "Conference Room A"). |
| Description | string (HTML) | no | Rich-text description of the room. |
| Area (m²) | number | no | Room area in m². |
| Main Image | string (URL) | no | Main image for the room card. |
| Gallery Images (Max 2) | string[] | no | Up to 2 additional gallery images. |
| Minimum Capacity | number | no | Minimum number of people. |
| Maximum Capacity | number | no | Maximum number of people. |
| External ID | string | no | ID in an external system. |
| Display Order | number | no | Sort position. Controlled by drag-and-drop. |
| Lock Behavior | object | no | Per-room lock policy. See the Lock section. |
Capacity
- Set a capacity per layout (how many people fit in the room with that layout).
- Each layout can have a different capacity for the same room.
- The capacity is validated: it cannot exceed the room's max capacity.
Equipment
- Assign equipment items to each room.
- Equipment must be created in the Equipment tab first.
- Manual rooms can only use manual equipment; catalog rooms use their own assigned equipment.
Availability and tax
- Toggle availability on or off.
- Assign a tax rate (from your workspace tax rates).
Room pricing
Every room has a pricing mode that controls how costs are calculated.
Pricing modes
| Mode | Description |
|---|---|
| Simple Pricing | One base price with a unit type. |
| Flexible Price Blocks | Multiple price tiers based on duration or time windows. |
Older pricing configurations are automatically updated to use the current pricing options.
Simple pricing
Pick one unit type:
| Unit | Description |
|---|---|
| Per Hour | Price per hour of usage. Requires start/end time dependencies. |
| Per Day | Price per day of usage. |
| Per Event | Flat price for the whole event, regardless of duration. |
Simple pricing fields:
| Field | Type | Description |
|---|---|---|
| Price | number | The base price amount. |
| Price Unit | string | Per Hour, Per Day, or Per Event. |
| Tax Rate | Tax rate name | Select the tax rate applied to this price. |
Flexible price blocks
Create multiple price blocks for tiered pricing. For example: "Morning: 200 EUR, Afternoon: 200 EUR, Full Day: 350 EUR" -- the customer picks a time block.
Price block config reference
| Field | Type | Required | Description |
|---|---|---|---|
| Block Name | string | yes | Display name (e.g. "Morning", "Half Day", "Full Day"). |
| Block Type | string | yes | Block type. See the table below. |
| Price | number | yes | Price for this block. |
| Price per Hour | number | conditional | Used for price calculations in duration blocks. |
| Price Type | string | auto | Net or Gross. Matches your form's display price setting. |
| Tax Rate | Tax rate name | yes | Select the tax rate applied to this block. |
| Start Time | string (HH:mm) | conditional | Start time. Required for Time Range blocks. |
| End Time | string (HH:mm) | conditional | End time. Required for Time Range blocks. |
| Min. hours | number | conditional | Minimum hours. Required for Duration blocks. Step: 0.5. |
| Max. hours | number | conditional | Maximum hours. Required for Duration blocks. Step: 0.5. |
| Select Blocks | string[] or number | conditional | Block IDs to combine. Required for Combined Blocks (minimum 2). |
| Priority | number | no | Priority for conflict resolution. Higher number wins. Default: 1. |
Price block types
| Type | Required fields | Description |
|---|---|---|
| Time Range | Start Time, End Time | A specific time window (e.g. 08:00--12:00). The customer books a fixed slot. |
| Duration | Min. hours, Max. hours | An hour range (e.g. 1--4 hours). The price applies when the booking falls within this range. |
| Combined Blocks | Select Blocks (min. 2 IDs) | A combination of existing time-range blocks. The price applies when the booking spans all selected blocks. Only Time Range blocks can be combined. |
Additional type values from catalog imports are automatically normalized:
| Catalog value | Normalized to |
|---|---|
| Time-based | Time Range |
| Block-based | Duration |
| Hourly | Duration |
| Duration-based | Duration |
| Combined | Combined Blocks |
You can edit and delete individual blocks. Combined blocks need valid combinations.
Display settings
Configure how rooms appear in the public form.
Display options reference
| Setting | Type | Default | Description |
|---|---|---|---|
| Show Room Prices | on/off | on | Show prices on room cards. |
| Show Filter Options | on/off | on | Show filter controls. |
| Display Layout | string | Grid | Grid or List. |
| Columns (Grid View) | number | 2 | Grid columns (1--4). Only for grid layout. |
Layout type
- Grid View -- rooms shown as cards in a grid. Choose 1 to 4 columns (default 2).
- List View -- rooms shown as a vertical list.
Filters
Turn filters on to let customers filter rooms by:
- Capacity.
- Equipment.
- Availability.
Lock tab (detail forms only)
Lock rooms so customers cannot change their selection after a certain point.
Field-level lock policy
The lock tab on the room field applies a lock policy to the entire room selection:
| Setting | Type | Description |
|---|---|---|
| Lock | on/off | Immediately locked -- the field cannot be edited at all. |
| Final decision | on/off | Locked after the first submission with a non-empty value. |
| Editable until | object | Lock at a specific point in time. See below. |
Lock deadline config
| Field | Type | Values | Description |
|---|---|---|---|
| Date and time | string (ISO 8601) | -- | Fixed date and time. Required for absolute deadlines. |
| Anchor | string | Event start, Event end | Reference point for relative deadlines. |
| Days | number | 0--365 | Number of days offset from the anchor. |
| Direction | string | Before, After | Direction of the offset. |
Lock timing options:
- Lock -- locked right away.
- Final decision -- locked after the first submission.
- Editable until -- locked at a specific time:
- Fixed date: a fixed date and time.
- Relative to event: a number of days (0--365) before or after the event start or end.
Per-room lock policy
Each individual room can also have its own lock policy. The config is the same as the field-level lock policy above. Per-room lock policies override the field-level policy for that room.
Room appearance
Choose a visual style for the room display:
- Standard (default).
- Modern -- contemporary card design.
- Minimal -- reduced design.
Catalog-linked rooms
Rooms pulled from a catalog keep their core data read-only. You can still override:
- Availability.
- Tax rate.
- Lock settings.
Images are read-only for catalog-linked rooms. Catalog-linked layouts and equipment are fully read-only.
On detail forms, price overrides are also available for supported catalog rooms.
How it works at submission time
- If layouts exist for a room, the customer may need to select a layout.
- Lock rules are enforced on the server, not just in the form.
- The room selection appears in the event's Sales tab after submission. It is not a confirmed reservation yet -- your team reviews it first.