
Within Field Service Management, three modes of scheduling are distinguished. They differ in the balance of manual involvement versus machine processing.
- Manual Planning
- is the classic way of assigning activities to technicians: by drag and drop, possibly using the various filter options on the planning board to find suitable technicians.
- Assisted Planning
- consists of various functions on the planning board that help the dispatcher find suitable technicians and fill or rearrange their schedules in an efficient way. These functions are triggered manually, on request by the user.
- Automatic planning and optimization
- -also referred to as Autoscheduling- refer to completely automatic assignment of activities to technicians, or the re-optimization of existing assignments. Autoscheduling has similarities with Assisted Planning, but is executed without user input, instead relying on event- or schedule-driven business rules.
Both Assisted Planning and Autoscheduling share much of the same technical infrastructure and use the same data. Both features rely on so-called policies, that determine which candidate assignments are valid, and which candidate assignments are considered 'optimal'.

Assisted or automatic scheduling can be used in a number of different ways. These use cases are supported by different features and APIs. In the background, the features and APIs rely on the Field Service Management Autoscheduling Framework for processing the data and delivering the required output. Examples include the following:
- Best Matching Technician (also called 'Find Matching Technician'): who is best suited to execute a currently unplanned job
- Planning Widget: assign several currently unplanned jobs in an optimized schedule or sequence
A further feature, the Slot Finding API, helps, for a given activity, to find the best-matching technician in one or more time slot slots. This feature is however only available via a technical interface (API), and is not available on the UI. As such, it is not discussed further in this section.

Autoscheduling refers to scheduling and optimization without user intervention, usually through a business rule. It can be based on specific events (as detected on the database) or on specific schedules. Autoscheduling can also be triggered externally, for example, by an external service or system.
Depending on the use case, a set of activities are newly assigned and/or reassigned to a set of technicians.
For example, a periodic re-optimization could do the following: every night, a business rule selects the activities already assigned for execution the day after tomorrow, and unassigned activities that could be executed in the same period. It selects technicians with the job title 'field service engineer'. It then calculates a new optimal schedule, possibly assigning new activities, possibly discarding existing assignments, and possibly rearranging the sequence of activities for technicians.
Another example is the automatic assignment of a new activity: When a new activity is created (for example through integration), this event triggers a business rule that starts optimization framework for this single activity and all available technicians. This prevents jobs from backing up in the queue awaiting a scheduled planning round or manual intervention .
Data Quality
All functions relating to assisted- or automatic scheduling rely on a consistently high data quality. For example, data related to dates and times, locations, and skills/skill requirements need to be available and precise. More on this in the related advanced section.