365 Slots

-->

Microsoft Bookings is available as part of select Microsoft 365 subscriptions. Sign up today to get started. See plans and pricing Talk with sales. Speak with a sales specialist to learn more. Available M-F from 6:00AM to 6:00PM Pacific Time. 1 855-270-0615 Chat with sales. Our sales specialists are available to answer your questions. ‎Welcome to the bet365 Slots app! Top slot games and progressive jackpots – all ready to play in the new bet365 Slots app. Join bet365 Slots today and play. Play our best selection of slots with classic slots and jackpot slots, alongside Blackjack and Roulette in our new Slots app.

Use the Search Resource Availability for Requirement Group API and the Create Requirement Group Bookings API to book the resources that meet the needs you identify in your requirement groups.

  • The Search Resource Availability for Requirement Group API returns available time slots for resources when you search by using requirement groups.
  • The Create Requirement Group Bookings API uses the available time slots for resources to generate booking records for your requirement groups.

You pass the details of a requirement group in your API calls and retrieve a list of available resources and their open time slots. This is helpful for self-scheduling scenarios, where a user wants to view the availability of resources, or for portal scheduling scenarios where a customer wants to view resource availability from a website or app.

Prerequisites

Best
  • Dynamics 365 version 9.0 or above with Universal Resource Scheduling version 3.12.x.x

Search Resource Availability for Requirement Group API

Use the following input and output parameters for the Search Resource Availability for Requirement Group (msdyn_SearchResourceAvailabilityForRequirementGroup) API.

Parameters

NameTypeRequiredDescription
VersionStringYesThe version number of the API. The version number identifies the version of the API that should be invoked. The version number is a semantic version number of the format major.minor.patch. The request does not have to contain the complete version number.
RequirementGroupYesAn entity reference to the requirement group entity, usually is a GUID, as shown in the below sample
RequirementSpecificationIntegerNoIf left null, respects the targeting requirement group duration by default
StartDateTimeNoIf left null, respects the targeting requirement group start by default
EndDateTimeNoIf left null, respects the targeting requirement group end by default
Fulfillment PreferenceNorespects interval and ResultsPerIntervals fields only. If left null, respects the interval and ResultPerInterval fields of the targeting requirement group.
SettingsIntegerNoSettings for the request. Beyond the solution version and requirement details, you can pass along Settings for more filtered results such as retrieving available resources within a specific distance radius. Settings are specified as attributes in an entity bag
ConsiderSlotsWithOverlappingBookingBooleanNoSpecifies if time slots with overlapping bookings should be considered when computing potential time slots. It is false by default
ConsiderSlotsWithProposedBookingBooleanNoSpecifies if time slots with proposed bookings should be considered when computing potential time slots.It is false by default
ConsiderSlotsWithLessThanRequiredDurationBooleanNoSpecifies if a time slot with less than the required remaining duration should be considered when computing potential time slots.It is false by default
PageSizeIntegerNoNumbers of item returned in a page. It is 20 by default
PageNumberIntegerNoNumber of page. It is -1 by default(-1 means using full paging cookie mode, hence return all results).
PageCookieStringNoPaging cookie retrieved from previous searching result.
OrganizationUnitsEntityCollectionNoA collection of organization unit Ids. A qualified resource must be a member of one of the specified organization units.
RequiredSourcesListNoOnly the timeslots of these passed list of resources will show in the resulted timeslots.

Output

ReturnsName(Type)Description
Time slot(Entity collection)StartTime (DateTime)The start time.
EndTime (DateTime)The end time.
ArrivalTime (DateTime)The arrival time.
Effort (Double)The effort/capacity.
IsDuplicate (Boolean) A Boolean value indicating if the time slot is a duplicate.
Resource (Resource)The Resource entity as explained below
Location (TimeSlotLocation)The entity contains details about the location of a time slot. See the below TimeSlotLocation for more details
TimeGroup (TimeSlotTimeGroup)The entity contains details about a time group. See the below TimeSlotTimeGroup for more details
AvailableIntervals (List<OutputTimeSlot>)A collection of available intervals.
ResourceResource (EntityReference)An entity reference to the bookable resource.
BusinessUnit (EntityReference)An entity reference to the bookable resource group.
OrganizationUnit (EntityReference)An entity reference to the organizational unit.
ResourceType (Int)The resource type. See the resourcetype attribute on the BookableResource entity for possible values.
PoolID (Guid)The Id of the pool that the resource is a member of for the duration of the time slot.
CrewID (Guid)The Id of the crew that the resource is a member of for the duration of the time slot.
Email (String)The resource’s email address.
Phone (String)The resource’s phone number.
ImagePath (String)The path to the resource’s image.
RequirementsRequirement (EntityReference)An entity reference to the Resource Requirement record
ConstrainBag (String)Requirement constraint in ufx bag(internal)
Resource (List<EntityReference>)Entity reference list of resource that is available to the requirements
ProposalResourceAssignmentSetIntervalStart (DateTime)Start Time for each proposal resource assignment set
ProposalResourceAssignment (List<OutputProposalResourceGroup>)List of Resource assign to Requirement
PaginginfosMoreResults (Boolean)If there are more results or not.
PagingCookie (String)Paging cookie that can be used in the future search.
LocationEntityThe location has two attributes, Latitude and Longitude
WorkLocationIntegerThe work location
- Onsite (0)
- Facility (1)
Location agnostic (2)
LocationSourceSlotIntegerThe source of the location information
- Common (1)
- Custom GPS entity (2)
Mobile audit (3)
TimeGroupIdGuidThe time group Id.
TimeGroupDetailEntityReferenceAn entity reference to the time group detail.
TimeGroupDetailStartTimeDate and TimeThe time group detail start time.
TimeGroupDetailEndTimeDate and TimeThe time group detail end time.

Example

Response

Create Requirement Group Bookings API

Use the following input and output parameters for the Create Requirement Group Bookings (msdyn_CreateRequirementGroupBookings) API.

365 Slots App

Parameters

NameTypeRequiredDescription
VersionStringYesThe version number of the API. The version number identifies the version of the API that should be invoked. The version number is a semantic version number of the format major.minor.patch. The request does not have to contain the complete version number.
RequirementGroupEntityReferenceYesAn entity reference to the requirement group entity, usually is a GUID, as shown in the below sample.
StartDateTimeYesStart time of the Timeslot.
DurationIntegerYesThe Duration of the Booking to be created.
ResourceAssignmentsGUIDYesIt is an entity collection of the Resource Assignments that are to be made for the Bookings to be created. Look at the Resource Assignment entity table for more details

365 Spotswood-englishtown Rd Monroe Township

Resource Assignments

NameTypeRequiredDescription
RequirementGUIDYesThe resource requirement Id of the Requirement for which the booking record is to be created.
ResourceGUIDYesThe bookable resource Id of the Resource for which you want to create the booking.
BookingStatusIDGUIDYesThe booking status Id of the booking to be created.
EffortIntegerNoThe capacity of the Bookable Resource that is consumed by this booking.
TravelTimeIntegerNoThe travel time in minutes.

Output

Returns HandlerExecuted value which is of Boolean type.

365 Slots

Using the Requirement Group API

In the following scenario, you schedule a requirement group via API. You'll need a service created with resources before you can schedule a booking. Follow these steps to create a service activity.

Service configuration 

  1. In the site map, under Scheduling, select Service.
  2. Go to Resource Requirements.
  3. Create a service activity. For this example, we've created Test Requirement Group.

Service Activity configuration 

  1. In the site map, under Scheduling, select Service Activities.
  2. Go to Service Activities.
  3. For Subject, select Test Requirement Group.
  4. For Service, select Test Requirement Group.

Note

This automatically creates a resource requirement group that has the same name as the service activity.

Now you have a requirement group automatically created that has one technician (resource) to be scheduled to perform service at your customer's location.

Resource Requirement Group grid

The following image is an example configuration of the Resource Requirement Group page.

Note

To access the Requirement Group page from the Customer Service Hub app, you need to navigate there via a URL.

Important

Use the following URL to reach the Resource Requirements Group page: <YourOrgURL>?appid=guid&pagetype=entitylist&etn=msdyn_requirementgroupr.

  1. Go to General.
  2. Name field Test Requirement Group.
  3. Enter name in Owner field.
  4. Template field.
  5. Template Required, select No.

Search against your organization

In this next scenario, we show how to pass values for a specific requirement group (Entity Reference - GUID), Required Resources to complete work and match the resource to the organizational unit.

Important

  • To run the Requirement Group API, you need GUIDs for:
    • Requirement group
    • Bookable resources
    • Organizational unit (which can be retrieved by using the Web API)
  • If the API is called from a client (browser or canvas app) based on JavaScript, you need to have the extended SOAP SDK. The extended SOAP SDK is not an official Microsoft release, but you can is provided in the downloadable sample files for guidance.
  • We recommend that you test this search in your development or test environments to validate your scenarios and results before running it in your production environment.

To execute this search against your organization, you need to download the sample files, and then follow the steps below:

  1. Modify the hard-coded input parameters in the msdyn_SearchResourceAvailabilityForRequirementGroupSample.js file to reflect the GUIDs of records in your org. (Example: requirement group, resources, organizational unit).
  1. Add the files in the sample folder as web resources in your organization 
  1. Navigate to the newly added new_msdyn_SearchResourceAvailabilityForRequirementGroupSample.htm page. Example: <>//WebResources/new_msdyn_SearchResourceAvailabilityForRequirementGroupSample.htm
  1. Open the browser's developer tools by using the F12 function key. Set breakpoints as needed, and inspect the request/responses in the developer tool's console.
Poker

We can see there are multiple sets of time slots that are returned with each Set corresponding to a matching available Resource mapped to the underlying Requirement of the Requirement Group.

After the time slot Sets are returned by the API, you can display them on your custom web portal, app, or a Power App (model/canvas).

  1. After you choose a specific time slot set (Set number 1 in this example), update your new_msdyn_CreateRequirementGroupBookingsSample.js web resource in your org to pass the Resource Assignments (Requirement guid, Resource guid) and the Requirement Group as shown in the example below:

Important

Bet365

Find the complete sample code here: Create Requirement Group.

  1. Navigate to the newly added new_ msdyn_CreateRequirementGroupBookingsSample.htm page. (Example: <>//WebResources/new_msdyn_CreateRequirementGroupBookingsSample.htm) to invoke a call to the Booking API and create the booking.
  1. Open the browser's developer tools by using the F12 function key. Here you'll see that the Handler executed value is set to True, indicating that the bookings were created successfully.

We can also verify this by going back into the organization and checking the associated bookings of the Service/Requirement group we created, as shown in the following illustrations.

Other possible scenarios that might leverage these APIs are:

  • Build a custom web app or a Dynamics 365 portal to provide appointment scheduling for users. The app will show available time slots for the service or product being offered by using multiresource requirements (requirement groups).
  • Build a Power Apps canvas app to support self-scheduling scenarios for line-of-business apps.

See the Additional resources section for links to additional help resources.

Sample code

The sample code given below shows how to implement msdyn_SearchResourceAvailabilityForRequirementGroup message.

How to migrate from the legacy API to Universal Resource Scheduling

To migrate from the legacy Search API and Book API to the Universal Resource Scheduling API, use the following required input and output fields to map the APIs.

Input mapping data for the Search API

Legacy inputUniversal Resource Scheduling inputDescription
ServiceIdRequirement groupService/requirement group GUID
SearchWindowStartStart dateStart date for the appointment search
SearchWindowEndEnd dateEnd date for the appointment search
DurationDurationAppointment duration
No of resultsPage sizeTotal number of proposals or number of appointments on a page
SitesOrganizationUnitsSite/OU GUID
RequiredResourcePreferred ResourcesResources the customer prefers to schedule
ConstraintsConstraintsCustomer entity(ufx)
RecurrenceDurationIn a recurrence appointment search, the duration of the appointment
RecurrenceTimeZoneCodeTime zone for a recurring request
SearchDirectionForward or backward search for slots, based on the dates given
AnchorOffSetOffset in hours from midnight
UserTimeZoneCodeTime zone that's been set for the user
SearchRecurrenceRuleFrequency, interval, count and so on
Resource TypesType of resource
Restricted ResourcesRestricted for scheduling the appointment

Output mapping for the Search API

Legacy outputUniversal Resource Scheduling output
Appointment proposalsProposalsResourceAssignmentSet
TraceInfo
ExtensionDataObject
Time Slots
Requirements(contraintbag)
PagingInfos

Example scenarios for migrating from the legacy scheduling API to Universal Resource Scheduling

The scenario-based examples in this section add more details about mapping from the legacy API to the new Universal Resource Scheduling API.

Scenario 1: Get two resources for each schedule proposal

The following screenshot from the legacy API is provided for reference in this scenario.

  1. Create one site (Site1), one user (User1), and one equipment resource (Facility/Equipment tab), with the name Eq1, with the site set to Site1.

  2. Create the business closure and work hours for the user (8:00 AM to 6:00 PM) and the equipment (8:00 AM to 6:00 PM).

  3. Create a new service (Service1), and then add required resources as Choose 2 from User1, Eq1. Save and close the service.

  1. Go to the homepage and schedule a service activity and then, select Service1, and then select Schedule > Find available slots.

  2. Verify that two resources are returned for each proposal in accordance with the criteria you set.

Universal Resource Scheduling API code for scenario 1

Scenario 2: Verify that search results are correct for scheduling

The following screenshot from the legacy API is provided for reference in this scenario.

365 Slots
  1. Create the following:
  • Two sites: Micr0s0ftSite1 and Site2
  • Two users: User1 and User2 (Site2)
  • Go to Settings> Service management tab and create a site(with the name Site1), two resources on the Facility/Equipment tab (namely, Eq1 and Eq2) and go to setting> Security and create a user(User1). Two equipment resources on the Facility/Equipment tab (Eq1, Eq2), where Eq1 belongs to Site1 and Eq2 belongs to Site2
  1. Create the business closure and work hours for the user (8:00 AM to 6:00 PM) and the equipment (8:00 AM to 6:00 PM).

  2. Create a new service with status Reserved and required resources as Choose 2 from same site from User1, User2, Eq1, Eq2. Save and close the service.

  1. Go to the homepage > Service Activity > Schedule, and then select the service you created in step 3. Select the site as Site1, and then click on Find available time.

  2. Verify that the search results that are returned are correct for the site selected in the search criteria.

Universal Resource Scheduling API code for scenario 2

Scenario 3: Get proposed schedules that occur within the working hours for an equipment resource

  1. Create two sites (Site1, Site2), and then create three equipment resources (Eq1, Eq2, Eq3).

  2. Create the business closure and work hours for all equipment (3:00 PM to 6:00 PM).

  3. Create a new service (Service1) Choose 1 from (Random) Eq1, Eq2, #q3.

  1. In the Schedule Service Activity dialog box, search for proposals for Service1 by adding a required resource as Eq1 for a specific date range.

  2. Verify that the proposed schedules that are returned occur within the working hours of the equipment for that date.

Universal Resource Scheduling API code for scenario 3

Additional resources

ResourceDescription
Service Scheduling GuideRead how you can plan and schedule service activities for your customers.
Service scheduling FAQFrequently asked questions on service scheduling
Multiresource scheduling with requirement groupsUse requirement groups to mix and match different types of resources.
Search Resource Availability API for single resource requirementsBlog on how to use the Search resource availability API
Overview of Dynamics 365 Field ServiceThe Dynamics 365 Field Service business application helps organizations deliver onsite service to customer locations.
Documentation for resource schedulingGet started with using Universal Resource Scheduling.
Learning path for resource schedulingLearn how to use Universal Resource Scheduling in Microsoft Dynamics 365 for Field Service
Field Service YouTube ChannelVideo resources on Dynamics 365 Field Service
Dynamics 365 application ideasUse this portal to contribute product feedback and ideas for resource scheduling.
Community forumUse the community forum to ask questions, find answers, and see upcoming events.
Dynamics 365 blogRead the Dynamics 365 blog for release notes and posts from the product team.

Note

Can you tell us about your documentation language preferences? Take a short survey.

The survey will take about seven minutes. No personal data is collected (privacy statement).

Bet365 Slots Rtp

-->

Microsoft Bookings makes scheduling and managing appointments a breeze. Bookings includes a web-based booking calendar and integrates with Outlook to optimize your staff’s calendar and give your customers flexibility to book a time that works best for them. Automated notification emails reduce no-shows and enhance customer satisfaction, and organizations save time with a reduction in repetitive scheduling tasks. With built in flexibility and ability to customize, Bookings can be designed to fit the situation and needs of many different parts of an organization. The Bookings calendar is a mailbox in Exchange Online.

Bookings provides you the ability to make your organization’s meetings virtual with online meetings via Microsoft Teams and Skype for Business. Each appointment booked as an online meeting creates a unique meeting link that is sent to attendees so they can join via a web browser, phone dial-in, or the Skype or Teams app. Bookings is also available as an app within Teams, which allows you to create Bookings calendars, assign staff, and both schedule new and manage existing appointments without ever leaving Teams.

Bookings has three primary components:

  • A booking page where your customers and clients can schedule appointments with the staff member who should provide the service or run the appointment. This web-based scheduling page can be shared via a direct link, your Facebook page, and even through link embedding within your website.

  • A web app that contains a set of web-based, business-facing pages where Bookings calendar owners and administrators within an organization can define appointment types and details, manage staff schedules and availability, set business hours, and customize how appointments are scheduled. These pages allow for versatility and the ability to customize a Bookings calendar to fit the diverse needs of the person or organization.

  • A business-facing mobile app where Bookings calendar owners and administrators can see all of their appointments, access customer lists and contact information, and make manual bookings on the go.

Get started using Bookings

Ready to get started?

Watch this video or follow the steps below to set up Bookings.

To get started, see Get access to Microsoft Bookings. To turn Bookings on or off, see Turn Bookings on or off for your organization.