> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mile.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Routing Schedule

<Note>
  Required permission:

  * View Routing Schedule
  * Add Routing Schedule
</Note>

Open **Route Optimization → Schedule** and click the **"New"** button. Make sure the hub selector in the upper-right corner is set to the hub you are scheduling for, because the profiles you can choose from belong to that hub.

## Filling in the Form

The form has four fields. Required fields are marked with an asterisk (\*).

1. **Select Profile\***: The [Configuration Profile](/pages/route-optimization/configuration/introduction) every run of this schedule will use. This one choice decides a lot: the **hub** and the **vehicles** of each run both come from the profile, along with its geotags, constraints, and optimization settings.

2. **Schedule Name\***: A name that tells this schedule apart from the others. It is also used to name what the schedule produces — each routing result is named `{Schedule Name} - {date and time of the run}`, so a run of "Morning Routing Jakarta" appears in the Result page as `Morning Routing Jakarta - 2026-09-10 08:00`.

3. **Repeat Cycle\***: How often the optimization should run, and at what times. See [Choosing a Repeat Cycle](#choosing-a-repeat-cycle) below.

4. **Auto Dispatch**: When checked, every vehicle on the optimized result is dispatched to its field user as soon as the optimization finishes — no second step, no visit to the Result page. When left unchecked, the result is created and waits for you to review it and [dispatch it manually](/pages/route-optimization/dispatch). The checkbox is **off by default**.

Click **"Submit"** to save. If a required field is missing, the form stays open and shows which field needs attention.

<Note>
  There is no vehicle, visit, or hub field in this form, and that is deliberate. Vehicles come from the Configuration Profile so that there is only one place to maintain them — edit the profile and the next run picks up the change, with no edit to the schedule.
</Note>

## Choosing a Repeat Cycle

Five repeat cycles are available, and they behave exactly as they do in [Task Schedule](/pages/task/schedule/repeat-cycle/introduction):

| Repeat Cycle | Runs                                                       |
| ------------ | ---------------------------------------------------------- |
| **Daily**    | Every day, at one or more times of day                     |
| **Weekly**   | On chosen weekdays, at a time per day                      |
| **Monthly**  | On chosen days of the month, at a time per day             |
| **By Date**  | On specific calendar dates you list                        |
| **Custom**   | Every N days, weeks, or months — for example every 2 weeks |

For a walkthrough of each one, including the **Active From** and **Active To** dates that bound when a schedule is allowed to run, follow the Task Schedule pages — the controls are the same:

* [Repeat Daily](/pages/task/schedule/repeat-cycle/repeat-daily)
* [Repeat Weekly](/pages/task/schedule/repeat-cycle/repeat-weekly)
* [Repeat Monthly](/pages/task/schedule/repeat-cycle/repeat-monthly)
* [Repeat By Date](/pages/task/schedule/repeat-cycle/repeat-by-date)
* [Custom](/pages/task/schedule/repeat-cycle/custom)

Two things carry over from Task Schedule and are worth repeating here:

* **Outside the active window, nothing runs.** A schedule whose **Active From** date has not arrived, or whose **Active To** date has passed, is simply not triggered. **By Date** is the exception — those dates are absolute and need no window.
* **Time is entered in UTC.** Each time selector carries an info icon showing the format and your current UTC offset, so you can check what a chosen time means locally.

## What Each Run Will Include

Once the schedule is saved, this is what it will act on:

* **Visits**: every active visit at the profile's hub — those still waiting to be assigned and those already in progress. There is no additional filter to configure, and there is no way to narrow the set from this form.
* **Vehicles**: exactly the vehicles selected on the Configuration Profile at the moment the run starts.

<Warning>
  A single run includes **at most 1500 visits**. If the hub has more active visits than that when the run starts, the 1500 oldest by creation date are optimized and the rest are not part of that run. For hubs that regularly exceed this, split the work across more than one hub, or keep optimizing manually.
</Warning>

Visits without a coordinate are left out of the optimization. An automated run does not geocode addresses the way you can on the Visit page before optimizing by hand, so a scheduled run may cover slightly fewer visits than a manual one over the same data. Adding coordinates to your visits is what closes that gap.

## After the First Run

The schedule appears in the list right away, but its **Last Execution Status** stays empty until it first comes due. Once it has run, that column tells you what happened — and, if nothing was produced, why. See [Manage Schedule](/pages/route-optimization/schedule/manage-schedule).
