Meet the new Scheduling Operations Agent in Dynamics 365 Field Service!

I’m sure by now it hasn’t escaped anyone’s attention that Microsoft has been on an absolute roll when it comes to announcing agents—whether they’re autonomous, semi-autonomous, or somewhere in between—as part of the 2025 Release Wave 1. It’s been a steady stream of updates, and if you’ve been keeping an eye on things like me, you’ve probably noticed the four new agents recently introduced in Dynamics 365 Sales. But that’s just the beginning. There’s also a slew of additional agents lined up and gearing up for public preview across other parts of the Dynamics ecosystem, especially in Dynamics 365 Customer Service and D365 Contact Center. Naturally, the Field Service side of the house wasn’t going to be left out! Please welcome the Scheduling Operations Agent—Microsoft’s latest addition to the Dynamics 365 Field Service application, currently in public preview. Also the main topic of today’s article. Let’s take a closer look at what it does, and why it matters.
What does it do?
The Scheduling Operations Agent an autonomous agent is designed to make the life of dispatchers easier. It is designed to help dispatchers generate and/or fine-tune a resource’s schedule quickly with literally just a few clicks of a button. NOTE: The agent currently only supports resources that are user, contact or crew type. If you’ve ever watched a dispatcher work the Schedule Board, you know it can be a bit of a juggling act. Usually during the day schedules need constant adjustment because a customer might have cancelled a work or a technician wasn’t able to make it to the work location on time. It’s time-consuming, it’s repetitive, and it can get pretty chaotic. The purpose of the Scheduling Operations Agent is to make that whole process a lot smoother. It’s especially helpful in tackling some of the common situations and day-to-day challenges dispatchers regularly run into, for example: a schedule has been created for a technician, but new high- priority work has come in, and the dispatcher has to re-adjust the tech’s schedule to make sure the high-priority items are being taken care of first. Another example could be a technician who completes their scheduled jobs ahead of time and suddenly has a few unexpected hours free. Dispatchers need to act fast to slot in additional work that makes sense both geographically and based on priority, so those extra hours don’t go to waste. The point here is that these are all scenarios that could take advantage of the Scheduling Operation Agent. It’s important to understand that the Scheduling Operations Agent can only be used for one technician’s schedule at a time, and needs to be invoked by an end-user. It doesn’t work like the Resource Scheduling Optimization functionality, which allows us to optimize schedules for multiple technicians at a time, either one time or on a recurring schedule.
How does it work?
The Scheduling Operations Agent is meant to be used ‘as-needed’. Perfect for those moments when you just need to quickly clean up or tweak a single technician’s day. A dispatcher can invoke the Scheduling Operations Agent by right clicking on a resource on the schedule board and choosing the ‘Suggest Schedule’ option that shows up. The suggested schedule settings pane opens up on the right side of the screen, where the dispatcher can select a scheduling goal, time range, time zone and the requirements view they want the Scheduling Operations Agent to use when compiling the new schedule. The agent also looks at the technician’s existing bookings and will try to come up with the best possible schedule. Dispatchers can also select if they want the agent to:
Match required characteristics: We can associate characteristics or skills to a work order and resources in Dynamics 365 Field Service. If the dispatcher wants to make sure that the technician has the skills/characteristics required by the work order, they need to make sure this option is checked.

Match Territories: We can assign service territories to service accounts and resources. If the dispatcher wants to make sure that only resources in the same territory as the service account are used, they have to have this option checked.
Schedule within the time promised window: The work order can have time windows that have been given to the customer. For example, we could’ve told them a tech will be out to their location between 9AM-12PM. Having this setting checked means that the Scheduling Operations Agent will honor those times and it will schedule those work orders in that promised time frame. I noticed that if there is a booking with an expired promise window, the agent will delete that booking.
Use predictive travel time: If this box is checked, the Scheduling Operations Agent will use historical traffic data to provide a more accurate estimate of how long it will take a technician to travel to a customer site for each booking. If this box is unchecked the agent will use average travel time to estimate
When the dispatcher clicks the ‘Suggest Schedule’ button, the agent starts analyzing and generates a suggested schedule. It’s important to note this schedule is just a suggestion and the bookings haven’t been created for the resource at this time. When the new suggested schedule is created, a window with the schedule on a ‘mini schedule board’ opens, showing the current schedule and the proposed schedule. This allows the dispatcher to compare both schedules. The route is also visible on a map. If the dispatcher needs to make adjustments to the schedule before applying it, they can do this by clicking the ‘Adjust Settings’ on the bottom of the window. This will reopen the suggested schedule settings pane again, where a dispatcher can make changes to the settings and re-run the agent. When the dispatcher is happy with the suggested schedule, they can click ‘Apply’ to create the booking for the proposed schedule.

Setup
It is important to understand that the Scheduling Operations Agent is a consumption-based paid service, even while it is in preview. This means if you want to try out the Scheduling Operations Agent, you will need to configure a billing-model in your environment for Microsoft Copilot Studio messages. Currently there are two options when it comes to billing: prepaid capacity or pay-as-you-go. If you’re going the prepaid route, that means you’re using Copilot Studio message pack subscriptions, so basically, you’re buying a chunk of usage up front through Microsoft Copilot Studio licensing. If you prefer more flexibility, you can use the pay-as-you-go model, which bills you based on the actual number of messages your agents use each month.
Admins can enable the Scheduling Operations Agent by navigating to the resources area and selecting Scheduling Parameters on the sitemap. Open the resource scheduling parameter and click on the ‘Agents’ tab and turn the toggle to ‘On’.
After this is done, there is some additional setup that needs to happen before you can use the agent. Navigate to bookable resources and make sure all resources that are users, contact or crew types have a start and end location selected that is NOT location agnostic. This can be configured on the scheduling tab of the resources. Also make sure that the resources have the setting to be displayed on the schedule board set to ‘Yes’.
Booking Statuses Setup
Now let’s discuss the booking statuses of existing bookings (aka work orders that have already been scheduled). You might not want the agent to reschedule a booking that is in progress or one that has a status of ‘traveling’. In order for the agent to know which bookings it can reschedule, we’ll need to configure this on the booking statuses. There will be a new option set column for the booking status table called ‘Optimization Method’, which the agent uses to determine if bookings can be rescheduled. The column has 3 values: Optimize, Do Not Move and Ignore and you will need to select one of these for each booking status in your system, including any custom statuses that were added.

The first value, ‘Optimize‘ means that any booking that have this status are eligible to be rescheduled. Usually these are bookings that have been scheduled, but haven’t been touched by the resource yet. I.E statuses like ‘Scheduled’ or ‘Committed’. I added my own custom status called ‘Reschedule’ that resources can use when they want to reject the booking. I set the optimization method for this status to ‘Optimize’ as well.
‘Do Not Move‘ means literally that: Do not move these bookings, do not touch them, leave them as is. You probably want to use this value for bookings that are in progress, which includes statuses like ‘On Break’, ‘Traveling’ and of course ‘In Progress’.
The last status is the ‘Ignore‘ status. You probably think how is this different from ‘Do Not Move’? Well, ignoring a booking means that in the agent’s world it does not exists. The agent will schedule other bookings in the same timeframe, because it doesn’t see the booking. This value is mostly used for bookings with a status of ‘Cancelled’.
Priority Values
There is also a new column for the priority table in Dynamics 365 Field Service. The column is called ‘Priority Value’ and this column helps the agent understand the priorities of work orders. You can enter any number between 1 – 100 in the column, the higher the number you enter, the higher the priority. Microsoft recommends using priority values that are easy to tell apart from each other, so for example you could set the lowest priority to 25, a moderate priority to 50, an urgent priority to 75 and emergencies to 100. Once the setup has been completed you can start testing the agent! Let me know what you think of this agent in the comments! I hope you enjoyed this article! Be sure to check in again next week for a new article or subscribe here to never miss another post!