Learn › Exchange Online › 5 · Recipients & permissions

Resource mailboxes and booking

Room booking is CalendarProcessing: one settings blob per resource deciding auto-accept, conflicts, delegates, and horizons. Every 'the room declined/ignored/double-booked' maps to one property — and the Teams Rooms fleet stands on exactly this machinery.

The processing pipeline per invite

An invite to a room hits the Resource Booking Attendant (if AutomateProcessing=AutoAccept): conflict check → policy checks (window, duration, recurrence caps) → in-policy = accepted + calendar written; out-of-policy = declined OR routed to DELEGATES per the request-in-policy settings. AutomateProcessing=None (mail sits unanswered — the 'room ignores me' state) usually means a mis-provisioned resource or someone 'fixing' a delegate issue by turning the attendant off.

The properties that answer real tickets

Ticket Property (Get-CalendarProcessing)
"Room ignores invites" AutomateProcessing (None vs AutoAccept)
"Declines everything after next quarter" BookingWindowInDays (default 180)
"Our all-day offsite was declined" MaximumDurationInMinutes (default 1440)
"Recurring series partially booked" Conflict/recurrence thresholds (AllowRecurringMeetings, ConflictPercentageAllowed, MaximumConflictInstances)
"Subject shows 'Busy' not who booked" AddOrganizerToSubject / DeleteSubject (privacy trade — also what the Teams Rooms console displays!)
"Externals can't book our client suite" ProcessExternalMeetingMessages (default false — deliberate)
"Some people book instantly, others wait" BookInPolicy vs RequestInPolicy vs RequestOutOfPolicy population lists — the tiered-access machinery

Design patterns

Standard rooms: pure auto-accept, subject shown, sane horizon. Managed spaces (boardrooms, labs): RequestInPolicy for everyone + delegates who approve (delegates are FullAccess-ish humans — the delegation concept's timers apply to their experience). Equipment: same machinery, stricter caps. And the fleet dependency: the Teams Rooms curriculum's 'meetings don't appear on the console' incident class is THIS blob mis-set — CalendarProcessing is where the panel's reality is authored.

Booking-window maths bites annually: BookingWindowInDays=180 means December planning for next summer bounces — raise deliberately before the planning season ticket wave, not during.

What to watch (proofs)

  • The per-resource truth: Get-CalendarProcessing <room> | fl — the whole ticket table answers from one output; export fleet-wide quarterly (rooms drift as admins hand-tweak).
  • Decline forensics: the attendant's decline responses state the violated rule — read the room's reply before theorising.
  • Tiered-access reality: BookInPolicy lists vs the intended VIP groups — stale name-based lists rot as people move (prefer groups).
  • Utilisation vs config: booking density per room (calendar reports/Places tooling) against caps — the data that justifies loosening or tightening each blob.

PowerShell for this concept

  • Get-CalendarProcessing View the calendar processing options for resource mailboxes, which include the...
  • Get-Mailbox View mailbox objects and attributes, populate property pages, or supply mailbox...
  • Get-Place View the additional metadata that was configured on room mailboxes by using the...

Discussion

No messages yet — start the thread.

Sign in with your email to join the discussion — we send a one-time link, no password.