--- title: Configure dynamic scheduling description: Dynamic Scheduling enables automatic task assignment to field agents based on predefined rules and configurations. This feature helps streamline task distribution by verifying the correct tasks are assigned to the most suitable agents, optimizing travel time, skill matching, and task priority.Task filters allow you to define criteria for selecting and assigning tasks to the most suitable agents using dynamic scheduling.The Dynamic Scheduling uses configurable matching criteria, such as skills and availability, to evaluate the agents in a selected group and provide an overall ranking.Dynamic scheduling uses task ordering rules to prioritize and arrange tasks effectively. These rules ensure tasks are handled in the right sequence, helping you streamline field service operations.Dynamic scheduling allows you to define unassignment constraints that prevent certain tasks from being unassigned, even when lower in priority. This feature ensures that critical tasks stay assigned, based on dependencies or urgency. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/field-service-management/field-service-scheduling/create-dynamic-scheduling-config.html release: australia product: Field Service Scheduling classification: field-service-scheduling topic_type: task last_updated: "2026-03-12" reading_time_minutes: 22 breadcrumb: [Dynamic Scheduling, Setting up a Field Service scheduling method, Configure, Field Service Management] --- # Configure dynamic scheduling Dynamic Scheduling enables automatic task assignment to field agents based on predefined rules and configurations. This feature helps streamline task distribution by verifying the correct tasks are assigned to the most suitable agents, optimizing travel time, skill matching, and task priority. ## Before you begin - Select dynamic scheduling as the preferred task assignment method. This verifies that tasks are automatically assigned to field agents based on predefined criteria and rules. For more information, see [task assignment method](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/t_ConfigureFieldService.md). - Set up agent schedules so that dynamic scheduling systematically verifies optimal task allocation. For more information, see [Set up agent schedules for dynamic scheduling](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/agent-schedule-dynamic.md). - Review the properties and other installed components related to dynamic scheduling. Customize the settings to align with your organization's specific requirements. For more information, see [Review system properties and components for Dynamic Scheduling](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/dynamic-sched-system-properties.md). - Verify to configure travel time and distance calculation to determine how the system calculates an agent's estimated travel time and distance to a task location. You can choose between using the Google Maps API for real-time travel estimates or straight-line estimates based on the geolocation property settings. - If the `Use Google Maps API for travel time estimates` geolocation property is enabled, choose between using the Google Maps API or straight-line estimates. - If the `Use Google Maps API for travel time estimates` geolocation property is turned off, the system considers the Estimated Travel Duration field's value from the work order task. Role required: admin ## About this task By default, the `Dynamic Scheduling Config for Work Order` configuration is available with the Dynamic Scheduling plugin. You can modify the configuration as needed or use as a template to create your custom configuration. ## Procedure 1. Navigate to **All** > **Field Service** > **Administration** > **Dynamic Scheduling Configuration**. 2. Update an existing work configuration or create one. This field only appears if you have the plugin installed. For more information, see [Configuring Field Service Work Configurations](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/work-order-management/configuring-work-configs.md). 3. Select the task table that dynamic scheduling uses to assign tasks to agents. The default table is `Work Order Task [wm_task]`. Dynamic scheduling can have only one configuration for each task table. 4. Select the **Un-assignment** check box to let dynamic scheduling unassign a previously assigned task and assign a higher-priority task based on task ordering rules. When this option isn’t selected, the **Un-Assignment Constraints** related list won’t be visible in the form. 5. Select the **Default Agent Work Schedule**. Configure the order in which dynamic scheduling determines an agent’s work schedule - the agent's specific work schedule, schedule specified on the agent’s user record, the default agent work schedule selected in this configuration, or the default 8-5 weekday schedule. 6. Set the **Consider Territory Membership** to either consider or ignore the agent's territory membership for assigning tasks. This field appears when the Field Service Territory Planning plugin is enabled. 7. In the **Task Filters** related list, add a task filter or modify an existing task filter or add a new filter. Task filters help identify which tasks should be assigned using dynamic scheduling. Within the filter, you can set criteria to match tasks with the most suitable agents. For more information, see [Create a task filter for dynamic scheduling](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/create-dynamic-scheduling-config.md). 8. In the **Task Ordering Rules** related list, add a new task ordering rule or modify an existing rule. Task ordering rules help to determine the order of tasks. For more information, [Create a task ordering rule](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/create-dynamic-scheduling-config.md). 9. In the **Un-Assignment Constraints** related list, add or modify criteria for unassigning tasks. This enables the system to free up agents for higher-priority tasks when needed. For more information, see [Create a task unassignment constraint](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/create-dynamic-scheduling-config.md). 10. Select **Update**. 11. Select **Validate config** to validate the dynamic scheduling configuration. An information message appears at the top of the Dynamic Scheduling Configuration form if the configuration is valid. ## Result Dynamic scheduling automatically assigns tasks to field agents based on the defined rules and schedules. **Related topics** [Example - configure dynamic scheduling to assign preferred technicians to tasks](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/excluded-preferred-agents.md) [Example - configure dynamic scheduling to ignore excluded technicians](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/prevent-excluded-agents.md) [Assigning work order tasks to agents using dynamic scheduling](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/field-service-scheduling/using-dynamic-scheduling.md) ## Create a task filter for dynamic scheduling Task filters allow you to define criteria for selecting and assigning tasks to the most suitable agents using dynamic scheduling. ### Before you begin Role required: admin ### About this task Task filters help you refine how tasks are assigned to the most suitable agents. You can use the default filters provided by the Dynamic Scheduling plugin or create custom filters tailored to your organization’s specific needs. Dynamic Scheduling, when combined with Auto Assignment and Immediate Assignment, offers flexibility in task allocation. Tasks can be assigned instantly or at scheduled intervals, depending on your configuration. The following table explains how Dynamic Scheduling behaves with different combinations of Auto Assignment and Immediate Assignment settings. These options let you balance automated task assignment with manual control. |Auto assignment|Immediate assignment|Result| |---------------|--------------------|------| |Enabled|Enabled|Dynamic Scheduling runs instantly, automatically assigning tasks to field agents.| |Enabled|Disabled|Dynamic Scheduling runs, adding tasks to a scheduled batch. Tasks are assigned to agents at regular intervals.| |Disabled|Disabled|The dispatcher manually triggers Dynamic Scheduling, and tasks are sent back for confirmation before assignment.| ### Procedure 1. Navigate to **All** > **Field Service** > **Administration** > **Dynamic Scheduling Configuration**. 2. In the **Task Filters** related list, click **New**. 3. Fill in the fields on the Task Filter form.
| Field | Description |
|---|---|
| Name | Enter a name for the task filter. |
| Active | Select to activate the task filter. |
| Execution Order | Set the priority for the filter. Filters with lower execution order values are applied first, creating the initial task list. Higher values further refine the list. For example, filters for maintenance tasks have a lower order than filters for pending dispatch or appointment tasks. |
| Table | Select the task table \(e.g., Work Order Task\) that this filter will apply to. |
| Conditions | Specify the conditions that will identify which tasks to include in the filter. |
| Resource Type | Choose whether the tasks should be assigned to individual users or crews. Select User \[sys\_user\] for individual agents or Crew \[wm\_crew\] for teams. |
| Auto Assign | Select to automatically assign tasks. The **Auto Assignment Frequency** field appears when this field is selected. |
| Auto Assignment Frequency | Choose the auto assignment frequency:- Immediate: Tasks are assigned as soon as they are ready. - Interval: Tasks are assigned at regular intervals that you define. If you select **Interval**, the **Auto Assignment Interval** field appears. |
| Auto Assignment Interval | Set the interval \(in minutes\) for how often tasks should be auto-assigned. The task filter with a higher Execution Order value must have an interval greater than a task filter with a lower Execution Order value. |
| Criteria | Description | Type | Applies to \[Table\] |
|---|---|---|---|
| Agents with most parts | Identify agents with the most number of required parts using dynamic scheduling. | Scripted | Task |
| Assigned Cases | Calculates the workload based on all the assigned cases \(all priorities P1, P2, P3, etc.\). The agent's overall rank decreases with more assigned cases. The more cases assigned, the lower the contribution to the agent's overall rank. | Aggregate | sn\_customerservice\_case |
| Availability Today | Determines availability based on the schedule, overlap timezone, and current time. Availability is calculated based on the agent's work schedule, and personal time off. The more availability an agent has, the higher the contribution to the agent's overall rank. | Scripted | Task |
| Consistent Assignment for SM tasks | Assigns work order tasks with the same parent work order to the same agent. Ensures assignment consistency across all matching agents. | Scripted | sm\_task |
| Current Distance From Task | Considers an agents distance from the task location. | Scripted | Task |
| Distance from Task | Evaluates the agent's distance from the task location. | Scripted | Task |
| Distance from task with radius exclusion | Ranks agents based on the nearest location to perform the job, excluding those outside the defined radius. | Scripted | Task |
| Filter out off-shift agents | Excludes agents who are not available based on schedule or having time-off events. | Scripted | wm\_task |
| Ignore Excluded Technician | Prevents automatic assignment of excluded technicians to work order tasks associated with specific accounts. Excluded technicians won’t be assigned if the work order task is associated to an Account for which the technician has been excluded. | Scripted | wm\_task |
| Ignore Rejected Technician | Avoids reassignment of tasks to technicians who have recently rejected the same task. The system property work.management.rejected.technician.duration determines the time period from when a technician rejected a task to when that task can be automatically reassigned to the same technician. | Scripted | wm\_task |
| Last Assigned | Prioritizes agents based on their most recently assigned work to balance the workload. For the sake of balancing assigned work, prioritized the agent based on the last assigned work. | Scripted | task |
| Matching Mandatory Parts For Dynamic Scheduling | Assigning only the agents with the mandatory parts. Ranks agents based on the availability of mandatory parts required for the job. | Scripted | task |
| Matching Mandatory Skills For Dynamic Scheduling | Ranks agents based on the availability of mandatory skills and optional skills defined in Task Skills that are required for the task. The more skills that match, the higher the contribution to the agent's overall rank.**Note:** If using the mandatory skills feature, use the **Matching Skills - Mandatory Skills Support** criterion to match agents with the [mandatory skills](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/workforce-optimization-for-field-service/configure-mandatory-skills-feature.md) identified for a case. | Scripted | task |
| Matching Skills | Evaluates availability based on the skills matching the task requirements. The agent's rank increases with more matching skills. | Scripted | task |
| Matching Skills Level Gap For Dynamic Scheduling | Ranks agents based on the number of skills and skill levels, using the "less is better" method. Prioritize agents with the sufficient skill level over agents that are over-skilled for the task. | Scripted | task |
| Prioritize Preferred Technicians | Assigns tasks based on technicians who are most preferred for working on a customer account. | Scripted | wm\_task |
| Radius Exclusion | Ranks agents based on the defined radius, excluding those outside the radius. | Scripted | task |
| Rank Preferred Technicians | Identifies technicians who are most preferred for working on a customer account using dynamic scheduling. | Scripted | task |
| Timezone Overlap | Ranks agents based on their timezone overlap with the task location. | Scripted | task |
| Matching mandatory crew skills for dynamic scheduling**Note:** Needs Field Service Crew Operations plugin \(com.snc.fsm\_crew\_scheduling\) to be activated. | Match mandatory skills for a crew task to crews with agents that have those skills. | Scripted | wm\_crew |
| Crew skill level gap for dynamic scheduling**Note:** Needs Field Service Crew Operations plugin \(com.snc.fsm\_crew\_scheduling\) to be activated. | Match mandatory skill levels for a crew task, to crews with agents that have skills at the required level. | Scripted | wm\_crew |
| Crew Matching Skills**Note:** Needs Field Service Crew Operations plugin \(com.snc.fsm\_crew\_scheduling\) to be activated. | Match crews with the skills listed in the work order task, and assign the task to that crew. | Scripted | wm\_crew |
| Matching crew skills for task resource requirements**Note:** Needs Field Service Crew Operations plugin \(com.snc.fsm\_crew\_scheduling\) to be activated. | Match crews with the skills listed in the resource requirements, and assign the task with those resource requirements to that crew. | Scripted | wm\_crew |
| Crew Distance from Task**Note:** Needs Field Service Crew Operations plugin \(com.snc.fsm\_crew\_scheduling\) to be activated. | Evaluates the crew's distance from the task location. | Scripted | wm\_crew |
| Matching Agent Efficiency Criteria for Dynamic Scheduling**Note:** Needs Field Service Agent Efficiency plugin \(com.snc.fsm\_agent\_efficiency\) to be activated. | Assigns a work order task to an agent by matching the Agent Efficiency criteria specified in the work order task with the agent's efficiency criteria. | Scripted | wm\_task |
| Matching Demand Channel For Dynamic Scheduling**Note:** Needs Workforce Optimization and Territory model to be enabled. | Identifies technicians who support the demand channel of a work order task in the selected territory during auto-assignment. | Scripted | wm\_task |
| Field | Description |
|---|---|
| Name | The constraint name. |
| Task Table | Select the task table to which this constraint applies. |
| Type | Choose the type of constraint.- **Simple**: define a simple constraint by selecting a table, a task field, and one or more filter conditions. - **Advanced**: define an advanced constraint by creating a script. |
| Constraint Table | Specify the table used to define the constraint on a task. |
| Task Field | Select the task field to which this constraint applies. |
| Constraint Condition | When this condition is true, it prevents task reassignment or unassignment. |
| Constraint Script | If using an advanced constraint, create a script to define the constraint details. |