Coming Soon to AppExchange - 2026

Conference Room Booking on a Salesforce Calendar

Pick the room, pick the days, pick the time slots, and see what is already taken before you commit. A room booking calendar that lives in Salesforce and writes to your own objects, with no code.

Notify Me at Launch See the Salesforce Calendar

Most orgs already have the room data in Salesforce. What they do not have is a way for someone to look at a room, see the next two weeks, and book three afternoons without creating three records by hand or opening a separate booking tool.

"Is the big room free on the 14th? And the 15th? And the 21st?"

What a room booking calendar needs

A room picker

Rooms come from any object you already use. Filter the list by building, floor, capacity, or anything else on the record.

Hours per room

Each room carries its own business hours, so the 24-hour lab and the 9-to-5 boardroom behave differently on the same grid.

Existing bookings drawn in

Slots that are already taken show as taken, color-coded by status, before anyone clicks.

Several rooms at once

Multi-resource mode books the same slot across several rooms in one action, for events that need more than one space.

Salesforce conference room booking calendar with a room picker, date selection, and time slot grid
Room picker, dates, and time slots on one screen, with taken slots already marked.

What changes

Room booking task Standard Salesforce today With MultiDatePick
Book one room for four afternoons Four records, created one at a time Four clicks and one save
See what is already booked Run a report, read it, go back to the form Existing bookings drawn straight onto the grid
Room only open 9 to 5 Nothing stops a 7pm booking Business hours read from the room record
Training needs three rooms, same slot Three bookings, three chances to get it wrong Multi-resource checkboxes, one action
Room closed for maintenance A note somewhere, ignored Blocked dates read from your closure records

Desk hoteling is the same problem, bigger

Swap rooms for desks and the model is identical, except a floor has 60 of them and several people can book the same zone. Capacity mode handles that: set a capacity field on the resource, and each slot shows a live X/Y badge and closes when it fills. The config library ships importable starting points for both patterns, including Meeting Room Booking and Desk Hoteling.

It writes to your objects, in your shape. One record per booking, one per date range, or a parent record with sub-blocks for the gaps inside a long reservation. You choose the shape; the component fills it.
Salesforce desk hoteling calendar with capacity badges showing how many spaces remain in each slot
Capacity badges for desk hoteling, where a zone takes several people per slot.

The configuration, in full

Two variants, because a meeting room and a desk zone are the same component with one property changed.

Meeting room — one booking per slot
relatedObjectApiNameRoom_Booking__c
relationshipFieldApiNameRequester__c or the parent record the page sits on
dateFieldApiNameBooking_Date__c
bookingStartTimeField
bookingEndTimeField
Start_Time__c / End_Time__c
resourceObjectApiNameRoom__c
bookingResourceFieldRoom__c on the booking
businessHoursStartField
businessHoursEndField
on the room, so the 24-hour lab and the 9-to-5 boardroom behave differently on the same grid
resourceFilterField
resourceFilterValue
narrow the picker by building, floor or capacity. Comma separates OR, semicolon separates AND
blockedDatesSourceObjectpoint at your closure records so maintenance days grey out automatically
conflictBehaviorblock — a room genuinely cannot take two bookings
Desk hoteling — several people per slot
capacityFieldDesks_Available__c on the zone. This one property is the whole difference: the slot shows a live X/Y badge and stays open until it fills
capacityAggregationCombined to sum capacity across selected zones, Distinct to count one event shared across zones once
showAvailabilityCounttrue — the "3 of 8 free" badge is the point
Multi-resourcelet people book several zones at once when an event needs more than one space
Everything else is identical to the meeting-room config. Treating a capacity resource as a conflict resource means nobody can ever be the second booking, which is the most common misconfiguration on this pattern.

Both patterns ship as importable configurations in the config library, so you can start from a working one rather than a blank form.

Rooms are a Timeline and Utilization problem

With more than three or four rooms, the month grid stops being useful: you end up opening each day to find out which room was free. Switch to Timeline and every room is a row, two weeks of dates are the columns, and a multi-day hold draws as one continuous bar. A room with several bookings on the same day collapses to a single row with a count and expands on click, so a busy room does not push the rest off the screen.

Utilization is the one facilities managers ask for without knowing its name: percentage of capacity used per room per day, green through red. It needs a capacityField on the room record to show percentages; without one it falls back to raw booking counts.

Two properties worth setting on a room-heavy org. maxViewResources caps how many room rows are drawn, busiest first, so eighty rooms do not become a wall (nothing is excluded from the counts, only from the paint). timelineWindowDays controls how many days are on screen; it defaults to 14 because a whole month of columns leaves each booking about twenty pixels wide and clips every room name.
Utilization heatmap across conference rooms showing capacity over a fortnight

Room booking, without another tool

Coming to the Salesforce AppExchange in 2026. Tell us where to send the launch note.

Try the Live Demo Notify Me at Launch See How It Works

100% Salesforce native. Your data and your configuration never leave your org.