Microsoft Bookings behind the scenes
Published Oct 26 2021 10:43 AM 9,014 Views
Microsoft

Microsoft Bookings is an appointment scheduling tool that provides effective ways to manage your services and schedule appointments for your customers with just a few clicks. Bookings is integrated with your Office 365 calendar to help your customers quickly find available times and avoid your staff from being double-booked.

 

Please note that in order to use Microsoft Bookings it must be enabled for your tenant. If you are a tenant admin, here you can find detailed information to enable Bookings.

   

Once Bookings is enabled on the tenant, users can start using it.  

If you are new to Bookings please visit this link for Frequently Asked Questions on Microsoft Bookings

 

Demystifying the process 

Let’s spend some time covering what actually happens in the backend when a user creates a Bookings calendar, specifically: 

  • Where the data is stored 
  • How Admins can track/audit events and usage 

 

Where the data is stored: 

Bookings calendar data and other information is stored in the scheduling mailbox in Microsoft Exchange Online. This might lead you to wonder what a scheduling mailbox is, and when is it created. 

 

A scheduling mailbox is the mailbox that gets automatically created in Exchange Online as soon as a user creates a Bookings calendar in Office 365. Scheduling mailbox is where all the relevant information/data about Bookings calendar is stored. This includes 

  • Business information, logo, and working hours added when the booking calendar was created 
  • Relevant staff and services added when the booking calendar was created 
  • All bookings and appointments added to the booking calendar once it was created. 

 

Note- Once the booking calendar are deleted, the data is permanently lost and cannot be retrieved. 

 

How admins can track/audit events and usage  

An admin can use the below command to list the scheduling mailboxes in their tenant. 

 

Hitesh_sharma_0-1635269366895.png

 

To list the scheduling mailboxes with users who have full access to it you can use the below command; 

Get-Mailbox -RecipientTypeDetails SchedulingMailbox -ResultSize:Unlimited | Get-MailboxPermission |Select-Object Identity,User,AccessRights | Where-Object {($_.user -like '*@*')} 

 

When a user creates the Bookings calendar, they will receive an email notification like the one below and a similar kind of notification will be sent to all users who will be added as staff members for this Bookings calendar. 

Hitesh_sharma_1-1635269366902.png

 

 

 

However, if the admin has enabled the “Require Staff Approval” setting at the tenant level then employees added as staff in a Bookings calendars will also get an Approve or Reject link in the email notification they receive. 

 

Hitesh_sharma_2-1635269366906.png

 

 

 

This setting is available in the Microsoft 365 admin center under Settings > Org Settings > Bookings. 

 

An admin can also track the creation of Bookings calendars using Exchange Online admin audit logs (look for the New-Schedulingmailbox in the logs and it will also have the name of the user who created it, as shown below. 

 

Hitesh_sharma_3-1635269366903.png

 

 

You can also use the following PowerShell command to fetch these logs; 

Search-AdminAuditLog -Cmdlets New-SchedulingMailbox -StartDate (Get-Date "MM/DD/YYYY ").ToUniversalTime() -EndDate (Get-Date "MM/DD/YYYY").ToUniversalTime() 

 

Refer to the following article for detailed information on Exchange Online admin audit logs - https://docs.microsoft.com/en-us/exchange/security-and-compliance/exchange-auditing-reports/view-adm... 

 

You will notice a corresponding user object created with the name of the Bookings calendar under Active Users in Microsoft 365 Admin center. This new mystery user is simply the new Bookings calendar.   

Hitesh_sharma_4-1635269366904.png

 

 

As there is an object being created in Microsoft 365 directory you will also see the event in Azure audit logs, you will find it was initiated by Microsoft Substrate management which is responsible for provisioning corresponding user objects for the scheduling mailbox that got created for the Bookings calendar. 

 

This can be surprising or might seem like a security concern to several administrators when performing audits for their tenant as it shows a mystery user being created without their knowledge, hopefully this mystery will now be solved. 

 

Hitesh_sharma_5-1635269366905.png

 

 

For more details on such unknown actors in Azure audit reports, please refer to the following article- 

https://docs.microsoft.com/en-us/troubleshoot/azure/active-directory/unknown-actors-in-audit-reports 

 

To summarize:  

  • When a user creates a Bookings calendar a scheduling mailbox is created 
  • The data is stored in the scheduling mailbox 
  • Admins can use a series of commands or look at Exchange Online audit logs to track these events  

We hope you found this information helpful when working with Microsoft Bookings. 

 

Hitesh Sharma on behalf of the Bookings team

15 Comments
Super Contributor

Hello @Hitesh_sharma 

 

Thank you for the behind the scenes!

 

One of the major shortcomings for properly managing bookings is the lack of oauth2 application permissions. Currently only delegated permissions are available to manage bookings via the graph.

 

We want to closely govern the creation (and the lifecycle) of bookings using our selfservice tool. We need to create fake user accounts in order to create/manage bookings via the MS graph.

 

When will it be possible to manage bookings using application permissions?

 

Bart

Microsoft

Bookings do need a signed-in user present as it can not run as a background service thus it supports delegated permissions only for now, however we appreciate your inputs and interest in Bookings and will pass on the feedback to our team.

Occasional Contributor

I have a question: @Hitesh_sharma 

 

Question: when a client is getting a booking confirmation email. is it possible to hide my email so they don't respond to that.

 

Problem: When the  client receives the email confirmation (new account email) and they hit reply and it auto populates the owner/admin of the booking user's email.  This can get quite messy when many clients chose to reply from that email. 

Microsoft

@uditDas Thanks for taking time to go through the post and regarding your question when a booking confirmation email is sent out to the customer it has owners address embedded in the "Reply to" header thus if customer clicks reply/reply all it will go to owner email address and there is no option to hide/change this as of now.

Occasional Contributor

@Hitesh_sharma Yes, I figured that. Even though the email comes from the calendar address but when replied it auto fills the owners email. This might be an issue as many might reply and spam the inbox. 

 

I wonder if there is a way to change this or if @microsoft will implement a solution. 

 

Thanks for your reply

Senior Member

@Hitesh_sharma This article gives a good understanding of how things work on the support team's end. Few questions focusing on the end-user side though:

  • If a booking is made by someone not in my organisation, are they treated as guest members or external members?
  • Where does the appointment/booking data reside for the end-user?
  • If the user were to be migrated into the organisation/tenancy, can their appointment/booking data be migrated also? and how?
  • does Bookings have a template functionality, so we can ensure all Bookings calendars created within the organisation have consistent branding, business information, and look and feel?
  • the calendar creation experience has been inconsistent: sometimes it creates the mailbox name according to the entered string, and sometimes a random GUID is created (see attached screenshot). What is the default and expected behaviour:  GUID or entered string? With the GUID option, two calendars can have the same name, but different mailbox name, which can be confusing.

AmitDhania_0-1644994793346.png

Super Contributor

We wanted to hide the bookings agendas from the address book because lots of user are mistakenly sending mails to them (instead of a similar looking shared mailbox).

 

However, hiding them from the address book makes it also impossible for the owners to find them /open them in the bookings UI.

 

How can we prevent users from sending mails to a booking agenda?

Microsoft

@bart vermeersch I agree it can get bit tricky if you have Bookings calendar and shared mailboxes with similar names but unfortunately there is no direct way of preventing emails from being delivered to Bookings calendar and hiding it from gal can cause search issues as mentioned

Microsoft

@AmitDhania 

 

  • If a booking is made by someone not in my organisation, are they treated as guest members or external members? They are treated as external only , user will appear as guest only when added as Guest users in your tenant
  • Where does the appointment/booking data reside for the end-user? Bookings related information/data resides in scheduling mailbox that gets created when user creates bookings calendar as explained in the blog
  • If the user were to be migrated into the organisation/tenancy, can their appointment/booking data be migrated also? and how? As of now its not feasible to migrate Bookings related data as it has staff/calendar/customer/service details which makes things bit more complicated as compared to other mailboxes. For now it is available to export the booking activities as a TSV file.
  • To export the data, please navigate to Home page of the Booking calendar and click Export 120 day view using a TSV file. For more details, here is an article for your reference: Reporting info for Bookings.
  • does Bookings have a template functionality, so we can ensure all Bookings calendars created within the organisation have consistent branding, business information, and look and feel? There is no template functionality available as of now but you can clone the existing booking calendar
Senior Member

Thank you @Hitesh_sharma, these are really helpful insights. Regarding data migration, the question was about an end-user's data (their mailbox, calendar, and appointments) being migrated from one tenant to another, instead of the service-side data (exchange mailbox, services, etc.).

 

Also, can you comment on the inconsistency issue with the Calendar creation process? GUIDs vs names created from entered strings?

Microsoft

@AmitDhania End user gets the Bookings appointment added as a meeting in his calendar once accepted/booked any service and and is like other calendar items and for migrating the user/mailbox data from one tenant to another  O365 tenant please refer kb for detailed information- microsoft-365-tenant-to-tenant-migrations 

 

  • the calendar creation experience has been inconsistent: sometimes it creates the mailbox name according to the entered string, and sometimes a random GUID is created (see attached screenshot). What is the default and expected behavior:  GUID or entered string? With the GUID option, two calendars can have the same name, but different mailbox name, which can be confusing.  this generally happens when a bookings calendar with similar name already exists then service automatically adds some numbers in email address of new calendar to keep the email address unique for entries with common display name if you see still see any other discrepancy/inconsistency in behavior kindly raise ticket with MS support for further rectification. Thanks! 
Occasional Visitor

Thank you @Hitesh_sharma, this is very helpful.   Regarding the Azure AD user that gets created for the scheduling mailbox, do you know how authentication is handled?  It looks like the AAD user is a real account.  Does it have a password set for example?   Are there any login restrictions outside of Conditional Access? 

Microsoft

@K3tchup The account that gets created is unlicensed account and does not have any password set by default however its not blocked from singnin and you can do the by enabling BlockCredential parameter using Set-Msoluser or from O365 admin portal

Contributor

Questions about the online Teams meetings that can be set up with a booking.

 

  • Who is the Organizer? Is it the new Exchange account that is created or the booked Staff user Organizer or Presenter? What if the booking is re-assigned?
  • Can the Meeting Options be accessed prior to the meeting? What are the default settings for the meeting?
  • Is the Customer an Attendee by default for the meeting? 
  • If I add additional Staff to a booking, are they Presenters or Attendees? (since we cannot book a group of Staff members in a single booking automatically, we are having the Staff person edit the booking to add the additional Staff assigned to the Service so they get the meeting invite). 

I am going to try testing to see, but wanted to find out if there was perhaps some documentation or if anyone has experienced this and knew what happened. TIA for any assistance. 

Occasional Contributor

I'm going to caveat my answer and say I am not a total expert and don't work for MS! :)


  • Who is the Organizer? Is it the new Exchange account that is created or the booked Staff user Organizer or Presenter? What if the booking is re-assigned?
    Yes, it is effectively the calendar account is sending out the invites to the meetings when someone book a slot on a service. However the staff member shows as the organiser in the actual meeting (assuming you are using this for teams). 
  • What if the booking is re-assigned? Not sure what you mean here? If the staff member cannot fulfil a service appointment, the Bookings administrator or Bookings scheduler can assign another staff member, as long as they are associated with that specific service. 
  • Can the Meeting Options be accessed prior to the meeting? What are the default settings for the meeting? The booked staff member "could" change the meeting options in advance but only by going into the actual meeting and doing this. They don't get the "meeting option" in their booking. The default settings are whatever your o365 team have set in admin, basically follows what your usual teams does. 
  • Is the Customer an Attendee by default for the meeting? Again depends on your tenancy settings. For me, anyone booking in my tenancy joins essentially as a presenter, but if an external joins they are an attendee. The  booked staff member can control everything in the meeting though.
  • If I add additional Staff to a booking, are they Presenters or Attendees? (since we cannot book a group of Staff members in a single booking automatically, we are having the Staff person edit the booking to add the additional Staff assigned to the Service so they get the meeting invite).  See last answer, I'm afraid you will have to play around and see what your tenancy is set as. You can share the meeting link with them, but only the staff member and the customer get the link. 
Co-Authors
Version history
Last update:
‎Oct 26 2021 11:41 AM
Updated by:
www.000webhost.com