Sep 24 2024 05:20 AM
I've seen people on here have had the displeasure of running into the same problem I had:
To manage multiple services through one booking site while still being able to allow conflicting appointments and have all appointments gathered in a single Outlook calendar rather than the Bookings calendar in Teams.
The problem
If you connect more than one service in Bookings to a single staff member the slot gets occupied in the schedule and therefore unavailable.
If service #1 is booked at 9pm on the 25th of April, that time slot is marked as occupied and blocked from further interaction.
If another person visits the site a few minutes later and tries to book service #2 at the same date and at the same time, it's simply not possible as the slot is shown as unavailable as it's occupied.
A rather easy fix would be to assign each service it's own Booking site but the maintenance would be awful.
User request
The user wanted a number of employees to handle the booking site of multiple services but not by associating service#1 to Employee#1, Service#2 to Employee#2 and so on but by having all the employees receiving updates from all the services and for them to be able to get a complete overview of the appointments in Outlook rather than in Teams.
TL;DR: All services managed from one calendar in Outlook.
Research - trial and error
I initially came up with the idea to use a single distribution list to get all the employees to receive appointments but I came to the brutal realization of this not solving the trouble of the time slot being occupied by another service once one service was booked.
So had to set up 6 different distribution lists simply to act as “staff members”, one for each station.
Service1 mail, service2 mail etc and then I connected them to its equivalent on the website (service1 mail handling service #1 on the website)
This was how I got around having to set up multiple booking sites and could handle all the service bookings on one site, making the administration a bit more manageable.
Persistent issue
Setting up 6 different distribution lists did solve the occupancy issue in the calendars but it did not solve the issue of trying to show 7 different calendars in Outlook while trying to maintain a decent layout.
(6 services calendars plus the user’s personal calendar) = chaos.
The ACTUAL fix!
I continued brainstorming and while doing so I fired up Powershell and tried making use of ExchangeOnline commands.
I went through every single argument out there but was left disappointed and pretty much about to give up but then something just clicked.
I got the idea to use a shared mailbox as the sole member and owner of every single distribution list I had created.
This would theoretically mean that the shared mailbox would receive every single appointment from Microsoft Bookings as well as gathering all the appointments in one single calendar. And then just hand the employees full access to the shared mailbox.
I was however met with stern resistance immediately as I was only allowed to set a UserMailbox as the owner of a distribution list in EAC.
So I had to turn back to PowerShell.
The argument “ManagedBy” is the PowerShell-equivalent of owner in EAC.
To change the owner of a distribution list you must install the ExchangeOnline-module in Powershell, then login with your admin credentials.
Command to change owner:
Set-DistributionGroup -Identity “service1@yourcompany . com” -ManagedBy "SharedMailbox @ yourcompany . com"
Command to add the shared mailbox as member: Add-DistributionGroupMember -identity "service1@yourcompany . com" -Member "SharedMailbox @ yourcompany . com"
So I did this for all the distribution lists I had created.
Next I had to go back to EAC to remove every existing member of the distribution lists apart from the shared mailbox which meant it was now the only member and owner. Therefore all appointments made at the booking site are now forwarded to the inbox of the shared mailbox.
You can’t set just set any type of mailbox as the owner of a distribution list though, it has got to be UserMailbox, Legacy, Team, RemoteUser,Room etc.
Which type of mailbox you end up picking is mostly down to personal preference but I chose to go with a shared mailbox as I was somewhat familiar with it’s user-scope.
Just to rule out any possible conflict issue I allowed conflicting meetings for the shared mailbox which means that two appointments at the same date and time would stack on top each other instead of cancelling each other out.
Command to Allow conflicts:
Set-CalendarProcessing -identity "SharedMailbox @ yourcompany . com" -AllowConflicts $true
Done!
All appointments will now be sent to a shared mailbox and they will all be gathered in one single calendar 😊