> 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 **Schedule** to save the new exact appointment 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

To change a visit's timing type on purpose, rather than by rescheduling it, open its popover and click the **Exact** or **Estimated** chip next to the time, then pick the other option from the dropdown. The visit keeps its place in the technician's day - converting anchors it at its current time. Estimated is disabled for a visit with more than one 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 **Schedule**.

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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
