> For the complete documentation index, see [llms.txt](https://learn.withessential.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.withessential.com/customers-and-work/scheduling/schedule-reschedule-or-reassign-a-visit.md).

# Schedule, reschedule, or reassign a visit

Use drag and drop on the Scheduling page to place work on the calendar, move it, or change the assigned technician.

If you are asking "How do I reschedule a visit?", first check whether the visit is an exact-time visit or an estimated visit - both can be dragged directly on the calendar, and dragging keeps each one's timing type as-is.

Exact-time visits have a specific promised start time. Dragging one to a new slot keeps that exact time; it snaps to the new technician's column and the nearest 15-minute mark.

Estimated visits are flexible route blocks. Rescheduling one usually means changing the technician or date, then letting Essential estimate timing from the technician's route, commute time, and visit duration.

## Schedule from the Backlog

1. Open the Scheduling page.
2. Find the visit in the Backlog.
3. Drag the visit onto a technician's calendar at the day and time you want.

Dropping the visit sets its start time and assigns that technician.

## Reschedule or reassign

### Reschedule an exact-time visit

Use this path when the customer still expects a specific appointment time. Exact visits show a bullseye-style icon; hovering it says **Exact start time expected by the Customer**.

The fastest way: press and hold the visit card on the calendar and drag it to the new technician and time. It snaps to the nearest 15-minute mark and previews the time as you drag; release to drop it there. The visit keeps its exact time and saves immediately.

Use the edit form instead when you also need to change something else about the visit at the same time, like adding a second technician:

1. Open the **Scheduling** page from the left navigation.
2. Find the visit on the calendar.
3. Click the visit card once to open the visit popover.
4. Click the edit icon in the popover header. It looks like a pencil on paper.
5. On the edit form, click **Choose Start Time**.
6. Keep the visit in exact-time mode. You should see technician selection, date, and start-time controls.
7. Select the technician or technicians for the visit.
8. Select the new date.
9. Select the new start time.
10. Click **Save** to save the new exact appointment time. (The button reads **Schedule** instead when the visit is coming off the Backlog and getting its first start time.)

### Reschedule an estimated visit

1. Drag the visit to the new technician or date.
2. Drop it on the new schedule location.
3. Let Essential recalculate the timing from the route context.

### Switch a visit between exact and estimated

Open the visit form, go to step 2, and choose **Exact time** or **Estimated**, then save. The choice is available for existing visits as well as new ones. You can also use the **Exact** or **Estimated** chip next to the time in the visit popover. Exact keeps a specific start time; Estimated places the visit after all of the technician's other exact and estimated visits that day, allowing for commute time. Estimated requires a single technician.

See [Exact time vs. estimated, duration, technician count, and due date](/customers-and-work/scheduling/exact-time-vs-estimated-duration-technician-count-and-due-date.md) for what each mode means.

### Unschedule a visit

1. Drag a scheduled visit back to the **Backlog**.
2. Drop it there to clear its scheduled placement.

Drag-and-drop changes take effect as soon as you drop the visit, for both exact and estimated visits. An Undo button appears at the bottom of the screen for a few seconds afterward - click it to put the visit back. Changes made from the edit form save when you click **Save** (labeled **Schedule** when the visit is being placed on the calendar for the first time). Saving updates the existing visit - it never creates a duplicate.

If a visit needs more than one technician, staff it with the required technician count instead of treating duplicate calendar blocks as separate visits.

You cannot reschedule a visit from the calendar if it is on a past day. By default, Essential also blocks rescheduling after a technician clocks in: the time, duration, timing type, and technicians with clock events stay locked, although you can still use **Edit Technicians** to add another technician.

An administrator can turn on **Enable re-scheduling after technician clock-in** under **Settings > Scheduling > Features**. When it is on, same-day and future visits can be fully rescheduled after clock-in, including changing their time, duration, exact/estimated timing, technician assignment, or moving them to the Backlog. Past-day visits stay locked. Deleting the visit or reverting it to a draft remains separate from rescheduling and keeps its existing restrictions.

> **Where to find it:** Scheduling page, drag visits between the Backlog and the calendar

## Related guides

* [Drag and drop to schedule, move, reassign, and handle conflicts](/customers-and-work/scheduling/drag-and-drop-to-schedule-move-reassign-and-handle-conflicts.md)
* [Exact time vs. estimated, duration, technician count, and due date](/customers-and-work/scheduling/exact-time-vs-estimated-duration-technician-count-and-due-date.md)
* [Add work orders (visit types) and contacts with reminders to a visit](/customers-and-work/scheduling/add-work-orders-visit-types-and-contacts-with-reminders-to-a-visit.md)
* [Create a new visit](/customers-and-work/scheduling/create-a-new-visit.md)
* [Deleting a scheduled visit is permanent](/customers-and-work/scheduling/deleting-a-scheduled-visit-is-permanent.md)
* [Draft visits and releasing them to the team](/customers-and-work/scheduling/draft-visits-and-releasing-them-to-the-team.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://learn.withessential.com/customers-and-work/scheduling/schedule-reschedule-or-reassign-a-visit.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
