Resource Scheduling Optimization (RSO)

By Emil Björk · Microsoft business apps consultant, Gothenburg

How Microsoft's Resource Scheduling Optimization works for Dynamics 365 Field Service and Project Operations.

Reviewed May 20262 min read · 527 wordsPublished
On this page (8)

Resource Scheduling Optimization (RSO) is the AI-driven scheduling engine for Dynamics 365 Field Service and Project Operations. It takes the human-intensive task of assigning work orders to technicians (or project tasks to consultants) and runs it as an optimisation problem, producing schedules that respect skills, calendars, travel time, SLAs, and many other constraints — at a speed and quality humans can't match for fleets above a few dozen resources.

The optimisation problem

Given:

  • N work orders (or project assignments), each with required skills, location, duration, time window, priority, SLA.
  • M resources, each with skills, calendar, working location, working hours.
  • Travel time between locations.
  • Constraints — overtime allowed?, regulations on driving time?, preference for same technician returning?

…find the assignment of work orders to resources, in what order, with what start times, that maximises a multi-objective goal: meet SLAs, minimise travel, maximise utilisation, respect priorities. This is an NP-hard combinatorial problem; humans solve it heuristically (and badly at scale); RSO solves it computationally.

The optimisation engine

Microsoft's RSO uses heuristic optimisation algorithms with configurable weights. The optimisation objectives are user-configurable: e.g. "75% meet SLA, 20% minimise travel, 5% maximise utilisation". Adjusting weights changes the schedule's character — high SLA weight pushes urgent jobs to the front even at the cost of more travel; high utilisation weight squeezes more jobs into fewer days.

Optimisation scope

Each RSO run is configured with:

  • Schedule range — the time horizon to optimise (next 7 days is common).
  • Resource pool — which resources are eligible.
  • Work order pool — which orders to schedule (typically all unscheduled + reschedulable).
  • Constraints — must-respect rules (skill match, customer preference, geographic boundary).
  • Objectives and weights — what to optimise for.

Running RSO

A run is launched manually by a dispatcher or scheduled on a recurring basis (e.g. nightly run for the next day's plan). Results are previewed in the schedule board before being committed; dispatchers can selectively accept, reject, or modify.

Live re-optimisation

Beyond scheduled runs, RSO supports real-time optimisation triggered by events — a new high-priority work order arrives, a technician calls in sick, traffic delays push back the morning route. RSO recomputes the affected slice and proposes adjustments.

Constraints — the configuration depth

RSO supports dozens of constraints:

  • Skill match (required vs preferred, proficiency level)
  • Customer preferences (preferred technician, blacklisted technician)
  • Geographic boundaries (driving distance limits, route territories)
  • Resource time windows (working hours, breaks, lunch, end-of-shift home location)
  • Multi-day jobs spanning days
  • Crew jobs requiring multiple technicians
  • Customer arrival windows (commit to 2-hour window, not just "today")
  • Inventory on truck (technician must have the right parts)
  • Travel mode (driver-bound vs flying)

Operational realities.

  • RSO produces dramatically better schedules than manual at scale (50+ resources). The gain is real — first-time-fix rate, on-time arrival, technician utilisation all improve materially.
  • RSO requires clean underlying data. Wrong skills, wrong calendars, wrong locations on resources sabotage the engine.
  • RSO is part of the broader Field Service licence; check the SKU when planning.

Limits

Very large fleets (1,000+ resources) or unusual industry constraints sometimes need partner schedulers (ClickSoftware, IFS, ServicePower) integrated alongside or in place of RSO.

Where to start

Pilot RSO with a single team or region. Measure travel reduction and SLA meet rate. Tune objective weights against business priorities. Expand.

Related guides

Browse every guide in Customer Engagement.

Was this helpful?

Signals which guides land and which need work. No account, no comment box — corrections go through the contact page.

Spot something wrong or want a topic covered? Send a correction or a topic request — both are welcome.