Envisioning solutions using Universal Resource Scheduling in Dynamics 365

The “Universal Resource Scheduling” (URS) has been around for a while and is a key element when planning resource in Dynamics 365 Field Service. The new service scheduling functionality in Dynamics 365 Customer Service now uses URS to help you plan resources to deliver your services.

This article aims to cover key concepts to help you envision great solutions using the URS. To make it easier to understand, I am using the exemple of a school using the URS to find and schedule available TRAINERS to deliver COURSES based on course date/time, location, skills and roles required.
  • Resource --> TRAINER
  • Requirement --> COURSE’s skills, roles, location and data & time required to deliver the COURSE
  • Booking --> Link the TRAINER and the COURSE with a status.

Key Concepts

The below interactive diagram represents the key concepts behind the URS and how they are rendered on the “Scheduling Board”.
The “scheduling board” provides a snapshot of the elements you need to schedule using the URS. At a glance you can see: 
  • The resources and their availability, 
  • The bookings and their status for a give time period,
  • The requirements and unscheduled service activity that need to be scheduled,
  • A filtering page that will filter resources and requirements at the same time based on selected criteria.

Resources (the TRAINERS)

Resources are anything that you can schedule to deliver a service. Resources can be of different types.
Resource Types:
  • User: The resource is a User in Dynamics 365,
  • Contact: The resource is a Contact,
  • Generic: The resource is not link to any other entities in Dynamics 365. Ex: It’s not a contact nor a user,
  • Equipment: Your resource is an equipment. Equipment are another entity in Dynamics 365,
  • Account: The resource is an Account,
  • Resource Crew, Facility and Pool are used for more advanced scenarios and are not covered in the article. To read more about those refer to the documentation under: https://docs.microsoft.com/en-us/dynamics365/common-scheduler/schedule-anything-with-universal-resource-scheduling

For our scenario, we can configure TRAINERS as Users or Contacts. If the TRAINER is a User, he can login to the application to view proposed bookings and accept or reject those. 

Additional information can be added to our TRAINERS:
  • Roles: performed by the TRAINER. Ex: Facilitator, Content Writer or Auditor,
  • Skills (with scale): Skills or certifications possessed by the resource. Ex: Teaching English (10 years of exp.), Teaching Maths (5 years of exp.), Online course delivery (4 years of exp.),
  • Territories: Where is the TRAINER available to deliver courses,
  • Working Hours: What are the TRAINER’s working hours.


The requirement (called Resource Requirement) is the entity that captures the details about the service (our COURSE) that needs to be scheduled. The requirement has a start date, end date, duration and one or more of the following:
  • Roles: What are the roles required to deliver the requirement. Ex: To schedule the delivery of a COURSE, we will need a Facilitator,
  • Skills: The skills and/or certification required to deliver the course,
  • Preferred Resource: You can assign the preferred TRAINERS to deliver the COURSE,
  • Territories: In which territory is the COURSE delivered.


The booking is effectively the records that links the resource (TRAINER) and the requirement (COURSE) that will be delivered. 
In addition to the TRAINER and the COURSE, the booking contains information such as the Start time, End time, Duration and Status. 
Booking statuses are used the track the progress of the COURSE delivery. Ex: A booking can be in “Proposed”, “Committed”, “Completed” or “Cancelled” status.


The filter pane let you filter resources displayed on the board based on filtering criteria.


A number of settings are available within the Unified Resource Scheduling.
  • Manage Roles: Let you create and update the different roles,
  • Manage Skills: Let you create and update the different skills,
  • Proficiency models: Skills for resources are rated by proficiency models. The individual ratings are in a proficiency model (Scale). Ex: We used “Years of Experience” to rate the skill level for our TRAINERS,
  • Booking Statuses: Booking statuses allow you to create multiple sub-statuses mapped to each of your booking statuses in order to more precisely define your business processes,
  • Business Closures: Prevent scheduling resources on holidays and other nonworking days by defining business closures in Dynamics 365 Customer Service. You can set both the days and times that your organization will be closed,
  • Scheduling Parameters: Allows you to setup maps, default units and configure new Entities to be available in URS,
  • Scheduling Board configuration: Update the look and feel of the Scheduling Board. More info on: https://docs.microsoft.com/en-us/dynamics365/field-service/configure-schedule-board