ADOPT AI PARTNERS
Insights / cross industry

AI for Scheduling: the optimiser does the maths, the agent does the mess

31 August 2026  ·  8 minute read  ·  Adopt AI Partners
discussion in a modern office
Photo via Unsplash

At six in the morning the dispatcher already knows the day is broken. Two engineers have called in sick, one van is off the road, a customer has rung to say they will not be in after all, and the part for the eleven o'clock job did not arrive on last night's stock run. The plan that the scheduling system produced at midnight was optimal for a world that no longer exists. What follows is four hours of phone calls, spreadsheets and negotiation to produce a worse plan that actually works.

That is operational scheduling in a large organisation. It is not the calendar assistant problem of finding a gap between two diaries. It is allocating scarce, skilled, regulated, physically located resource against demand that keeps changing, under rules that cannot be broken, with humans on both sides who have preferences and opinions.

AI is genuinely useful in this domain. It is useful in a narrower place than most vendors suggest, and understanding that place is the difference between a system your dispatchers use and one they quietly work around.

The two different machines you need

The single most important distinction in this whole area is between an optimiser and a language agent. They are not competitors. They solve different problems and most failed scheduling projects come from confusing them.

An optimiser, usually a constraint solver or a specialist heuristic engine, does the allocation maths. Given a set of jobs, a set of resources, travel times, skill matrices, shift patterns, legal limits and a cost function, it searches an enormous space of possible assignments and returns one that satisfies every hard constraint while doing well on the soft ones. It is deterministic, it can prove feasibility, and it can tell you why no solution exists. This is decades-old technology and it is very good.

A language agent cannot do that job. Ask a model to build a fifteen engineer, ninety job route plan and it will produce something that reads beautifully and quietly breaks the working time directive on three routes. It has no mechanism to guarantee a constraint holds. It is fluent, not correct.

What the language agent is very good at is everything surrounding the plan: reading the messy inbound request and turning it into a structured job with the right skill code and duration, chasing the missing detail that would otherwise make the job unschedulable, explaining a change to a customer in a way that does not generate a complaint, negotiating a new time, handling the exception that falls outside the model, and writing the results back into the systems of record.

So the architecture that works is layered. The solver owns the allocation. The agent owns intake, exceptions, communication and the human conversation. The agent calls the solver rather than replacing it, and treats the solver's output as authoritative.

Field service and engineer dispatch

Dispatch is where this layering pays off fastest. The optimiser handles the geography and the skills: who is qualified for this asset class, who holds the current certification, who can reach site inside the promised window, which parts are on which van.

The agent handles the reasons the optimiser gets bad input. Service requests arrive by phone, email and portal in the customer's own language. "The heating is making a noise" needs to become a job type, an estimated duration, an access requirement and a parts prediction before anything can be scheduled. An agent that reads the request, checks asset history for that site, asks the customer the two questions that determine whether this is a thirty minute or three hour visit, and confirms access arrangements, is removing the largest single cause of failed visits.

Then it handles the day. When an engineer overruns, the agent recognises the knock-on before the next customer does, requests a fresh solve for the affected routes, and contacts the customers whose windows have moved with a real new time and an apology that sounds like it came from a person. That is work no optimiser does and no dispatcher enjoys.

laptop and papers on a wooden desk
Photo via Unsplash

Rostering against skills, certifications and working time

Rostering is the hardest constraint problem most organisations own, and the one with the least tolerance for a plausible-looking error. A ward roster has to satisfy skill mix, supervision ratios, contracted hours, rest periods between shifts, annual leave, agreed patterns for part time staff, and whatever the local agreement with the union says about weekends and night runs. Some of those are legal. Some are contractual. Breaking either is a serious matter, not a soft cost.

This belongs to the solver, without exception. The agent's contribution sits either side of it.

Before the solve, an agent can gather and normalise the inputs that make rosters wrong: leave requests sitting in email, shift swap agreements made verbally, certification expiry dates that will lapse mid-cycle, training bookings that nobody put in the system. Most bad rosters are bad because the input was incomplete, not because the algorithm was weak.

After the solve, an agent handles the negotiation. It can explain to a nurse why the request was not granted, offer the alternatives that remain feasible, run a swap request past both parties and the rules before it reaches a manager, and fill an open shift by contacting eligible staff in the order your policy dictates rather than the order the manager happens to remember.

Appointments, theatre lists and clinic utilisation

Booking looks simple and is not. A clinic slot depends on the clinician, the room, the equipment, the interpreter, the transport booking, and whether the diagnostic result that the appointment exists to discuss has actually come back. A theatre list depends on case duration estimates that are systematically optimistic, on kit availability, on bed capacity downstream, and on the surgeon's list order.

Utilisation is lost in two places: slots that go unfilled and slots that are filled by someone who cannot proceed. Agents help with both. On the first, an agent can work a waiting list against a late cancellation, contacting patients who match the slot's requirements and are reachable at short notice, confirming with the first who accepts, and releasing the hold on the rest. On the second, it can run pre-appointment checks in advance: results back, pre-operative assessment complete, transport confirmed, patient still contactable, and escalate the ones that will fail before the slot is wasted.

Rescheduling is the highest volume workflow in this whole space and the one most often left to a phone queue. An agent that can hold a short, constrained conversation about when someone can attend, check the offer against real availability before making it, and confirm in writing, converts an abandoned call into a filled slot.

Production windows, maintenance and dock slots

In plants and warehouses the pattern repeats with different nouns. Maintenance windows compete with production runs. A shutdown needs the right trades, the right permits, the right isolations and the right spares, all present simultaneously. Dock slots need to match carrier arrival, labour availability and the put-away capacity behind the door.

The scheduling maths is again solver work. The agent's value is in the coordination that surrounds it: reading carrier booking requests and confirming or counter-offering slots, chasing the supplier whose ASN has not arrived, noticing that a part on order will not land before the planned window and flagging the conflict while there is still time to move the window, and assembling the permit and isolation paperwork so the window does not open with the crew standing idle.

finance planner with budget sheets on a desk
Photo via Unsplash

Disruption is the actual job

Every organisation we meet has a scheduling system that produces a good plan and a workforce that spends its day repairing it. No shows, sickness, weather, late parts, traffic, machines that fail on the wrong day. The plan is a hypothesis with a short half life.

This is where agents earn their place, because disruption handling is mostly communication and judgement under time pressure, not arithmetic. The pattern that works is narrow and repeatable: detect the disruption from the signals you already have, determine the affected commitments, ask the solver for a repaired plan within defined bounds, act automatically where the rules permit, and where they do not, hand a person a short brief with two or three feasible options and a recommendation. The human decides in a minute rather than reconstructing the picture for half an hour.

Where AI fails here

Be honest about this one, because scheduling punishes optimism.

Hard constraints must never be violated, and a language model cannot guarantee that. Working time limits, rest periods, supervision ratios, safety certifications, licence categories, dangerous goods qualifications: these are not preferences to be weighed. If your design has a model deciding whether a constraint applies, the design is wrong. Constraints belong in the solver, encoded and testable.

A plausible but infeasible plan is worse than no plan. It gets published, people arrange their lives around it, and the failure surfaces on the day, when it is expensive. Fluency makes this failure mode particularly dangerous, because the output looks authoritative.

Union and local agreements are often unwritten, inconsistently applied, and locally negotiated. They will not be in your data. If you automate rostering without surfacing them, you will produce technically legal rosters that cause an industrial relations problem.

People game schedules. Job durations get padded, availability gets understated, urgency gets inflated to jump a queue. A system trained on historical behaviour learns the gaming along with the work. Expect it, measure it, and keep a human accountable for the exceptions.

And no scheduling system survives bad master data. Wrong skills matrices, expired certifications still marked current, sites with the wrong postcode, duration estimates nobody has revisited in five years. Fixing that is unglamorous and it is usually the first month of the project.

The realistic promise is not an AI that schedules your operation. It is a solver doing the allocation properly, wrapped in agents that clean the intake, work the exceptions, handle the calls and keep the plan honest as the day falls apart. If that describes a problem you own, describe your operation to us at Adopt AI Partners and we will tell you plainly which part of it is solver work and which part an agent can carry.

Tell us what your teams keep redoing

One conversation is enough to say whether there is a system worth building, and what would make it fail.

Describe your process