# Admin | Room Booking

Kahu Room Booking is a complete solution for your organisation's room booking needs. For more information, see the overview here: Room Booking.

This section outlines what is required for the Microsoft 365 integration to work. For details on the information required to set up a new site, see Admin | Site Setup - Room Booking.

# Microsoft 365 Integration

Kahu Room Booking integrates with Microsoft 365 (M365) for a seamless user experience. For this integration to work, some administrator setup is required. The M365 integration uses the Microsoft Graph API to keep Kahu in sync with room calendars. Each room needs a resource mailbox associated with it.

# Azure App Approval

Similar to Microsoft SSO Setup there is an Azure App which requires approval for the M365 integration to work. There is a separate Azure App just for room booking, which includes the extra permissions necessary for room booking sync. To approve the app a unique URL will be provided for your organisation, please contact us to request this. When that URL is visited, you must login with an administrator Microsoft account to grant approval for your organisation. The page will look like this:

The permissions requested are as follows:

Permission Use
Sign in and read user profile Basic app permission
Read and write calendars in all mailboxes Events from the room's resource mailboxes are synced into Kahu. For more information, see Event Syncing
Read all users' full profiles Event owner profiles (for events in resource mailbox calendars) are fetched to link the Event owner with the person in Kahu (by matching the User Principle Name).
Read all company places The Place associated with a room is fetched to get information such as room capacity.

# Event Syncing

The Kahu Room Booking M365 integration syncs events from resource mailbox calendars into Kahu. If a room booking is made in Kahu, then this is created in M365. There are a few reasons the integration requires read and write access to all calendars.

To be able to represent the Event from M365 in Kahu both the resource mailbox's version of the Event, and the Event owner's version of the event are fetched. In cases where the room is checked in (via the Booking Panel), only the resource mailbox's version of the event is updated. When a booking is removed from Kahu, the Event is not deleted, but the room is removed from the Event; to achieve this the Event owner's version of the event must be edited.

# Resource Mailbox Settings

Some of the default resource mailbox settings need to be adjusted for the integration to work properly. These can be adjusted with the Set-CalendarProcessing cmdlet. The settings of interest are:

  • Meeting titles are not copied to the resource mailbox by default, to copy them over set -AddOrganizerToSubject $false -DeleteSubject $false

  • Private meeting settings are not copied to the resource mailbox by default, to keep the setting set -RemovePrivateProperty $false - this allows Kahu to keep private meetings private.

These settings will need changing for every room (resource mailbox) which is being integrated with Kahu.

A full example command:

PS > Set-CalendarProcessing -Identity <room-email> -DeleteSubject $False -AddOrganizerToSubject $False -RemovePrivateProperty $false


To run this command you need to follow this Microsoft guide: Connect to Exchange Online PowerShell

# Known Issues

Kahu Room Booking is constantly being improved but there are some known issues. This section lists these issues and any mitigation steps if applicable.

# A rejected booking may never show in Kahu

# What's the problem?

An event created from M365 that gets immediately rejected by the room's resource calendar may not appear in Kahu.

# What does it mean for me?

The rejected room event is present in a users calendar but may not show as a booking in the Kahu calendar view.

# A rejected booking may stay in Kahu

# What's the problem?

A rejected event will no longer be present in the rooms M365 calendar, but the booking may continue to show in Kahu. The booking will be disconnected from M365 event and will not receive any further updates causing it to appear permanently within Kahu.

# What does it mean for me?

The rejected or cancelled booking may continue to appear in Kahu, these will not disappear until manually deleted.

# Kahu may show private meeting details

# What's the problem?

If the only change made to a booking in M365 is to designate it "private" then the event in the room's calendar will not be updated, this means the booking in Kahu will also not reflect this.

# What does it mean for me?

An event may show as private within the users calendar but not in the room's calendar or Kahu. Making any other change to the event will update the room's event and Kahu.

# Moving a booking around too quickly can be unpredictable

# What's the problem?

Making numerous quick changes to a single booking within the Kahu calendar can cause it to "jump back" to a previous state and not update correctly.

# What does it mean for me?

A booking you move within Kahu quickly may "jump back" to a previous state or show unpredictable behaviour. Allowing a few seconds between changes of the same booking will mitigate this.

# Adding an owner via Kahu to a divisible booking can be rejected by M365

# What's the problem?

If there is an existing booking for a divisible room, assigning an owner may cause it to be rejected by the room in M365. The event in M365 during this process needs to be deleted from the rooms calendar and created within the users, the ordering of this can cause M365 to reject the event

# What does it mean for me?

On occasion assigning an owner to an existing booking within a divisible room may cause the booking to be rejected, removing it from Kahu. In this case the booking within the room's calendar will need to be removed and a new booking created with the new owner.