Configure desk booking
Individual desk vs. desk pool
Microsoft Places brings support for individual desk booking to Microsoft 365, which allows end-users to select a specific desk instead of reserving from a desk pool.
Key concepts:
Each desk in your organization can be configured to be bookable, or remain non bookable.
A desk can be marked non bookable when it's assigned to a specific user or when it isn't available due to maintenance activities or for any other reason.
Desks can be configured individually or pooled with other nearby desks. Desk pools are referred to as "workspaces" in Exchange Online.
Both models, individual desks and desk pools can coexist side-by-side in your organization, but each physical desk can be configured in only one way.
Desks follow a strict hierarchy in the Places directory: building > floor > section > desk and desk pools.
Important
- Individual desk booking is an enhanced feature which requires users in your organizations to be licensed for Teams Premium. Users must also be enabled for Places finder in order to book individual desks.
- Currently, the new desk booking experience is only available in New Outlook which is available on Windows and on the web. We're working to bring this experience to other surfaces soon.
Prerequisites
Configure desks for individual booking
Step 1: Create sections and desks
Use the GetPlaceV3 cmdlet to find the PlaceId of the floor where the new section is to be located. Then, use the syntax in the example below to create a new section on an existing floor, and then link the desks to that section.
Connect-MicrosoftPlaces
$building = Get-PlaceV3 -Type Building | Where-Object -Property DisplayName -eq 'NYC Times Square'
$floor = Get-PlaceV3 -AncestorId $building.PlaceId | Where-Object -Property DisplayName -eq "1"
$section = New-Place -type Section -Name "A" -ParentId $floor.PlaceId
$desk1 = New-Place -type Desk -Name "Desk 1" -ParentId $section.PlaceId
$desk2 = New-Place -type Desk -Name "Desk 2" -ParentId $section.PlaceId
Step 2: Make the desks bookable
To make a desk bookable, create a desk mailbox and associate it with the desk object by passing the mailbox Alias or Identity to the Mailbox parameter of Set-PlaceV3.
Connect-ExchangeOnline
$mbx = New-Mailbox -Room "Desk 1"
Set-Mailbox $mbx.Identity -Type Desk -HiddenFromAddressListsEnabled $true
Set-PlaceV3 $desk1.PlaceId -Mailbox $mbx.Identity
Step 3: Add capabilities to desks (optional)
You can add metadata to each desk, for example to specify if it's wheelchair accessible, or list devices available on the desk. Refer to Set-PlacesV3 to learn more about supported metadata. Fully customizable tags can also be added, for example to indicate if the desk is height adjustable or near a window. This information allows end-users to choose the right desk based on their needs and preferences.
Connect-MicrosoftPlaces
Set-PlaceV3 $desk1.PlaceId -Tags "height-adjustable-desk"
Set-PlaceV3 $desk2.PlaceId -IsWheelChairAccessible $true
Step 4: Apply booking policies to desks (optional)
You can use Exchange PowerShell command Set-CalendarProcessing to apply booking policies, as needed.
Connect-ExchangeOnline
Set-CalendarProcessing <desk_mailbox_alias> -BookInPolicy <BookableGroupDL>
Configure desk pools
Step 1: Create the desk pool
Desk pools must be created in Exchange Online, where they are referred to as "workspaces".
Use Exchange Online PowerShell to create a mailbox for each desk pool, using the Workspace mailbox type.
Connect-ExchangeOnline
New-Mailbox -Room -Alias <mailbox_alias> -Name <workspace_name> | Set-Mailbox -Type Workspace
Set-CalendarProcessing -Identity <mailbox_alias> -EnforceCapacity $True
Step 2: Make the desk pool available to book
Use Set-PlacesV3 to link the desk pool to a Section. This step is required for the desk pool to appear in the new desk booking experience.
Use the same cmdlet to configure the capacity of the desk pool (number of desks available to book in the pool). Using the Set-PlacesV3 cmdlet will write this information on Exchange Online, ensuring that the capacity is consistent in Outlook's Room finder.
You can follow the syntax in this example:
Connect-MicrosoftPlaces
$building = Get-PlaceV3 -Type Building | Where-Object -Property DisplayName -eq 'NYC Times Square'
$floor = Get-PlaceV3 -AncestorId $building.PlaceId | Where-Object -Property DisplayName -eq '1'
$section = Get-PlaceV3 -AncestorId $floor.PlaceId | Where-Object -Property DisplayName -eq 'A'
Set-PlaceV3 -Identity <mailbox_alias> -Capacity 10 -ParentId $section.PlaceId
Use the Add-DistributionGroupMember Exchange Online cmdlet to add the desk pool to a RoomList, to make sure the desk pool also appears in Outlook's Room finder:
Add-DistributionGroupMember <roomlistAlias> -Member <
Step 3: Add capabilities to desk pools (optional)
You can add metadata to each desk pool. For example, specify if it's wheelchair accessible, and add detail of devices available on the desk. Refer to Set-PlacesV3 to learn more about supported metadata. Fully customizable tags can also be added. For example, indicate if the desks are height adjustable. This information allows end users to choose the right desk pool based on their needs and preferences.
Connect-MicrosoftPlaces
Set-PlaceV3 -Identity <mailbox_alias> -IsWheelChairAccessible $True -Tags "Docking Station"
Step 4: Apply booking policies to desk pools (optional)
Use the Set-CalendarProcessing Exchange Online cmdlet to apply other booking policies, as needed.
Connect-ExchangeOnline
Set-CalendarProcessing <mailbox_alias> -BookInPolicy <BookableGroupDL>