{"id":10332,"date":"2022-06-08T07:50:41","date_gmt":"2022-06-08T14:50:41","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=10332"},"modified":"2022-06-08T07:51:26","modified_gmt":"2022-06-08T14:51:26","slug":"application-permissions-for-bookings-apis-in-microsoft-graph-now-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/application-permissions-for-bookings-apis-in-microsoft-graph-now-available\/","title":{"rendered":"Application permissions for Bookings APIs in Microsoft Graph now available"},"content":{"rendered":"<p>We are delighted to announce that application permissions for Bookings APIs in Microsoft Graph are now available on the beta endpoint.<\/p>\n<p>Microsoft Graph APIs support both delegated and application permissions. Previously, Bookings APIs in Microsoft Graph supported only delegated permissions. \u00a0Delegated permissions require a signed-in user to be present. In the case of Bookings, this meant that only a Bookings calendar administrator, scheduler, team member, or viewer can use APIs. Customers can\u2019t create appointments, which means that custom solutions that support self-scheduling aren\u2019t available. The addition of application permissions unlocks this scenario.<\/p>\n<p>With application permissions, developers can also create bot-like applications and make Bookings part of workflows that don\u2019t need a user to be signed in. Application permissions can also be used to create tools that help tenant admins monitor Booking calendars. Tenant admins can keep track of Booking calendar staff members, publish status and appointment statistics, and more.<\/p>\n<h3>APIs with application permissions<\/h3>\n<p>In this release, we are providing application permissions for a limited set of Bookings APIs. This includes application permissions support for read and write APIs for th<strong>e \u2018<\/strong>bookingCustomer \u2018<strong>and \u2018<\/strong>bookingAppointment<strong>\u2019<\/strong> entities. For other entities, including<strong> \u2018<\/strong>bookingBusiness\u2019, <strong>\u2018<\/strong>bookingStaffMember<strong>\u2019<\/strong>, \u2018bookingCustomQuestion\u2019 and \u2018bookingService\u2019, we are supporting the read APIs only. Because these tasks are for Bookings admins, delegated permissions are recommended for these use cases.<\/p>\n<table style=\"width: 98.4214%;\">\n<tbody>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong>APIs<\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><strong>Entities<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><em>Business APIs<\/em><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-get?view=graph-rest-beta&amp;tabs=http\">Get bookingBusiness &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingBusiness<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><em>Service APIs<\/em><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-list-services?view=graph-rest-beta&amp;tabs=http\">List services &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingService<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingservice-get?view=graph-rest-beta&amp;tabs=http\">Get bookingService &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingService<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><em>Staff Member APIs<\/em><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-list-staffmembers?view=graph-rest-beta&amp;tabs=http\">List staffMembers &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingStaffMember<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingstaffmember-get?view=graph-rest-beta&amp;tabs=http\">Get bookingStaffMember &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingStaffMember<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><em>Appointment APIs<\/em><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-list-appointments?view=graph-rest-beta&amp;tabs=http\">List appointments &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingAppointment<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-post-appointments?view=graph-rest-beta&amp;tabs=http\">Create bookingAppointment &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingAppointment<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingappointment-get?view=graph-rest-beta&amp;tabs=http\">Get bookingAppointment &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingAppointment<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingappointment-update?view=graph-rest-beta&amp;tabs=http\">Update bookingappointment &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingAppointment<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingappointment-delete?view=graph-rest-beta&amp;tabs=http\">Delete bookingAppointment &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingAppointment<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><em>Customer APIs<\/em><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\"><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingcustomer-get?view=graph-rest-beta&amp;tabs=http\">Get bookingCustomer &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingCustomer<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingcustomer-update?view=graph-rest-beta&amp;tabs=http\">Update bookingcustomer &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingCustomer<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingcustomer-delete?view=graph-rest-beta&amp;tabs=http\">Delete bookingCustomer &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingCustomer<\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 72.9179%; height: 28px;\" width=\"492\"><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-post-customers?view=graph-rest-beta&amp;tabs=http\">Create bookingCustomer &#8211; Microsoft Graph beta | Microsoft Docs<\/a><\/strong><\/td>\n<td style=\"width: 225.557%; height: 28px;\" width=\"132\">bookingCustomer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>To create appointments using application permissions, you need to use the <a href=\"https:\/\/docs.microsoft.com\/en-us\/graph\/api\/bookingbusiness-getstaffavailability?view=graph-rest-beta\" target=\"_blank\" rel=\"noopener\"><strong>getStaffAvailability<\/strong> API<\/a>. At the same time, you should understand how business rules are validated. There is one fundamental difference in creating appointments with delegated permissions as a Bookings admin and creating appointments using application permissions. It is assumed that an admin can override certain business checks as they are aware of their own calendar. However, the same assumption doesn\u2019t hold while creating appointments using application permissions.<\/p>\n<p>Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are delighted to announce that application permissions for Bookings APIs in Microsoft Graph are now available on the beta endpoint.<\/p>\n","protected":false},"author":69077,"featured_media":8312,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-10332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph"],"acf":[],"blog_post_summary":"<p>We are delighted to announce that application permissions for Bookings APIs in Microsoft Graph are now available on the beta endpoint.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/10332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69077"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=10332"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/10332\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/8312"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=10332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=10332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=10332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}