Use Microsoft Bookings as room and desk planner (back to the office)

Posted by

As a member of the Power Platform community, I love the initiatives to make applications available to organizations to face the challenges of this pandemic era. The platform has proven itself and offers the possibility to create professional solutions within a few days. But as a solution architect I like to keep an open mind towards all the services within the Microsoft cloud ecosystem and there are some (former) Business Apps that offer out-of-the-box functionality that can be of help. One of them is Microsoft Bookings, that is available for Office 365 Education A3/A5, Office 365 Business Premium subscriptions, and as free add-on for Office 365 Enterprise E3/E5 subscriptions but will become part of these subscriptions beginning May 12, 2020. Microsoft Bookings will also be integrated in Microsoft Teams as app, see the recent announcement: Microsoft Bookings expands availability in enterprises.

Microsoft published an article about using Microsoft Bookings to enable healthcare organizations a simple way to schedule and conduct B2C appointments via Microsoft Teams.

But we can also use Microsoft Bookings as room and desk planner for organizations that are going to welcome back their employees in the offices but need to plan the occupation of the available desks.

Make sure that Bookings is enabled for your organization in the settings of the Microsoft 365 admin center.

First we create a room mailbox for every desk that should be available as “staff” (resource) in the Exchange admin center. Set Booking delegates: Automatically accept or decline booking requests.

Open Bookings via the app launcher and add a booking calendar, for your department or office building.

You could combine this with the floor plans in Microsoft Search to guide employees to their desk. See the best practices for Microsoft Search floor plans to make it work.

Add the bookable desks as Staff. Search for the right room mailbox and set the room/desk number as initials.

Add a new service for the use of a desk, for instance for the whole day.

You can assign “staff” (resources) to this service (in case of meeting special requirements), or do not assign if every resource should be available for this service. After saving there’s a URL available to share a page for this service.

You can add the employees as customers to the system, manually or through import.

Now we’re all set to create and publish the booking page to make it available for the employees of the department or office. To keep the booking page for internal use only, enable the access control settings.

Adjust the settings for the Scheduling policy, Email notifications, Staff and Availability to your needs.

Publish the booking page to make it available via the URL that is shown.

Now we can test/use the published booking page by opening it.
Select a service (desk for whole or half day), day plus start time, and the staff (resource).

Add your details and click the Book button.

This will add the booking to the booking calendar and the calendar of the room mailbox.

The employee will receive a confirmation of the booking with an .ics file to add to his/her calendar, and the option to manage the booking in case of rescheduling or cancelling it.

So Microsoft Bookings can be a great help in planning the occupation of the desks in your offices!

Sharing is caring.

You could create a room mailbox for every room (instead of desk) that should be available as “staff” (resource) in the Exchange admin center. Set Capacity, Booking delegates: Automatically accept or decline booking requests.

When creating a service you can set the maximum number of attendees equal to the capacity of the room.
If the rooms (staff) differ in capacity then assign the rooms that meet the maximum number of attendees with their capacity.

Now based on this so-called Group bookings the service can be booked multiple times for the same time slot.
Note: This feature is still rolling out and might not be available in your organization yet, see official documentation.


  1. Hi,

    Thanks for sharing this! it looks great and super east to follow. One question, do you know if there is any functionality to allow users/staff to have visibility on the calendars? This is so that Staff can book the same days in for collaboration etc…

    Thanks again,
    Moe Ali

    1. Hi Moe,
      You can add the calendar of the room mailbox to Outlook. Search for it in the Address book, select and add it.

      1. Hi,
        It was possible to add the room mailboxes to my Outlook calendar, however the booking only shows the company name and not the name of the booker. Within the MS booking page I can see the name of the booker, but it won’t show within the Outlook calendar.
        Do you know a solution for this?
        Many thanks!

  2. This solution will not allow employees to book desks from MS Teams and booking mobile app so no integration between the apps.

    Only staff and owner can book desks from ms teams and booking mobile app.

    If we add users as staff, they will seeing themselves as resource in calendar so is there anyway to hide staffs in booking calendar either in teams bookings app or in bookings mobile app.

    Note: deselecting staff option is not good solution as users.

    And if users want to book via booking app in teams or in mobile they should be provided admin access.

    1. Hi Pradeep,

      You could add a website tab to a channel in Teams and set the URL of the published booking page.

  3. Thank you very much for this great tutorial. Quick question, is there a way to limit the number of desks booked per day? Let’s say I have 30 available desks, but once 20 are booked for the day, I cannot book the remaining 10. Basically I cannot have more than 20 people at once in the building but I would like to give them the option to pick the desk they want. Is there a way to limit it in Bookings? Thank you.

    1. Hi Benoît,
      I don’t believe there is a way to limit this in Bookings. You could monitor the bookings on a day and once the 20 desks are booked, you could block the calendars of the 10 remaining desks. Possible there’s a way to automate this with the Microsof Graph Bookings API that’s in preview.
      See: Use the Microsoft Bookings API in Microsoft Graph

  4. Hi , it seem that even access control is set to internal user only, when doing the booking, any email address entered is accepted? is this normal?

    1. Hi Ralph,
      The access control is for the booking page, and there’s no validation on the email addresses.

  5. I have rooms with different capacity how do I set this up without having to create a new service for every room?

    1. Hi Neil,
      You could create a room mailbox for every room (instead of desk) that should be available as “staff” (resource) in the Exchange admin center.
      Based on this so-called Group bookings the service can be booked multiple times for the same time slot, without the need of extra services.
      See the last part of my blog post under Addendum.

  6. How do you locate the link to the building floorplan once you have that all setup in Microsoft Search? This is the only part I can’t seem to figure out.

  7. Would this work for Room resources? Say a non-profit has multiple rooms with different capacity and dollar amount for rental and want to be able to use bookings for people who want to rent the rooms? I was told by Microsoft you couldn’t do this just this week, but they sent me this article and weren’t sure this would work for me so thought I would ask.

    1. Hi Lisa,
      I think this is doable. If you create a service for each room/capacity and set the default price, and assign “the staff” (room resource) that meets that capacity.
      See step 10, 18 and 20 in the following page: Create the service details.
      You have to set the default duration (step 6) for the rental, so you might end up with more than 1 service per room. See my example.


      1. Thank you for your response. I’m finally getting to testing this out. I am creating a service but under the section for maximum attendees, I can’t increase it to 12. I got a list of rooms from my client and for this particular room that I’m testing, there is a cost for the first hour and addtl hours are at a lower rate. Do I just put that in the notes?

        1. Lisa – Put the size of the rooms in the room name or comments. If you set the number of attendees that would allow the room to be double booked that many times 🙂

  8. Great system. Worked ok during our testing with 5 desks but I have an office of 100 desks and now just says loading for each staff (desk). Guess it can’t handle that many calendars. Anyone else had this issue?

  9. Is there a way I can change the ” Anyone” to “Any” in the dropdown list of Rooms? If I am going to use it as a desk/room booking I need to change the Booking page like ” Select Staff” to “Select Room/Desk”

  10. I need to create several hoteling/work stations and every time I create a station it asks for an email address. I want to use the same email address for every station but it doesn’t allow me to use same email address for every work station. Please help!

  11. Are you able to help with the query raised here:
    “ Hi,
    It was possible to add the room mailboxes to my Outlook calendar, however the booking only shows the company name and not the name of the booker. Within the MS booking page I can see the name of the booker, but it won’t show within the Outlook calendar.
    Do you know a solution for this?”

  12. I work from a Large Real Estate office with only 2 conference rooms, but we have multiple (non-RE) tenants which we are often booking conference rooms for and then result in difficult conversations with our Agents who want to drop in spontaneously with their clients. This seems like a win-win, because its online, and can go to our Calendars in Outlook automatically.

    My question is, how do you create the different mailboxes for each conference room? I looked up Microsoft Exchange, but have no idea what that is, and nothing came up with options to add different mailboxes. PLEASE HELP!

  13. We’ve found this really handy so thank you for the guide 🙂

    One question is when staff book a particular desk they get an e-mail invite which adds it to their calendar, the only thing that would be ideal is if that default wasn’t set to Busy as it means on Teams or Outlook they’re not free for anything else. Obviously that’s the intended behavior but it would nice if it could be changed.

    1. You’re spot on Steven, I’m also looking for a solution for this. I’d like the default to be “Free”. Kindly let me know if you have found a solution to this. Thanks. Br, Tony

  14. Based on my knowledge, the bookings calendar will sync to the staff’s Microsoft 365 business mailbox calendar. For google calendar to see it, it might have to book a service as a customer. If multiple users are not seen in your Bookings mobile app, chances are it is related to the display of the mobile app.

  15. Micorosft doesn’t allows now add resource as as a Viewer Stuff. It automatically changes it to the Guest and than booking is possible all the time no matter room is booked or no. Any solutions?

  16. WOW! A LOT of information here. So, I’m going to add to it with my “scenario”. Hopefully someone can clarify for me. ?
    I have 10 room resources in o365. We want to use “bookings” to manage those rooms. We have 500 end users who will be booking time in these rooms randomly as needed.
    Questions: 1. how do you configure this so rooms aren’t double booked? 2. How do I create the bookings page,? 3. is it best to create a dedicated 0365 user account for this like “” so its not tied to any specific user in 0365? (People come and go) 4. I’m also assuming there would be a separate bookings URL for each of the 0365 Room resources?
    We just want people to be able to book room times via a bookings URL.
    All helpful responses greatly appreciated.

Leave a Reply

Your email address will not be published. Required fields are marked *