> 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/drag-and-drop-to-schedule-move-reassign-and-handle-conflicts.md).

# Drag and drop to schedule, move, reassign, and handle conflicts

On the calendar you can drag a visit card from the backlog onto a technician's column to schedule it, drag a placed card to a new slot or technician to move or reassign it, or drag it back to the backlog to unschedule - and you can drag visits between the map and the calendar too. Beyond those basics, a few situations are worth knowing about.

Use the **Drag** control when you want to prevent accidental schedule changes — in Classic layout it's beside the **Scheduling** heading; in Full Screen layout, where that heading is hidden, it's in the calendar toolbar instead. **Drag enabled** shows a grab hand and allows visit cards to move. Select it to disable dragging from the calendar, backlog, and map; **Drag disabled** shows the same hand with a slash. Select it again to re-enable dragging. Essential remembers this choice in that browser. You can still open and edit visits while drag and drop is disabled, and you can still click and drag on empty space to draw a new visit - the lock only stops existing cards from being moved.

Click and drag an exact-time visit card to lift it - it snaps live to the nearest 15-minute mark on the technician's column and shows a time-range preview as you move it, with a faint outline left at its original slot. Dropping it on the Shared Grid view keeps it assigned to its own technician rather than reassigning it. An estimated visit doesn't get this live free-time drag: it still snaps only to the open blocks Essential lays out for that day, with no time preview while you drag.

In the Month view you can drag a visit to another day, which is the quickest way to push work into a later week. Drop the card on any day from today onward and the visit moves to that day; its technicians and duration stay the same. An exact-time visit keeps its start time, so a 9:00 AM Thursday visit dragged to the next Tuesday lands at 9:00 AM Tuesday. An estimated visit is placed after all of that technician's existing visits on the destination day, whether exact or estimated, with commute time included. This changes its scheduled time in Week and Day views too. On an empty day, it starts from the beginning of business hours, allowing for the drive to the visit. A visit with several technicians shows one card per technician in Month; dragging any of them moves the whole visit with everyone on it. To change who is on the visit, use the week view or open the visit and edit it. Visits hidden behind **+N more** can be dragged from that list too. If the start time falls in the hour skipped when daylight saving time begins, it moves forward by that hour.

Dragging a backlog visit onto a Month day opens the visit form on step 2, **Choose start time**, with that day already filled in. Choose **Exact time** and pick technicians and a start time, or choose **Estimated** and pick one technician to place the visit after their last stop that day. Select **Schedule** to save the existing visit. Closing the form leaves the visit in the backlog. If the visit is missing something step 1 requires, the form opens on step 1 instead, with the day still filled in. You can also drag a Month card back onto the backlog to unschedule it.

That same free 15-minute positioning is how you create a visit by hand: click and drag on an empty part of a technician's column to draw a new exact visit. The block you draw sets its start time and duration, and releasing opens the visit form prefilled with both plus that technician. The drawn block stays visible on the calendar while you finish the form - saving replaces it with the real visit card, and closing the form without saving removes it. Drawing works on the Shared Grid layout too - since that column isn't tied to one technician, the form opens with the time and duration filled in and you pick the technician before scheduling.

Property-based visits can overlap on a technician's schedule without a numeric limit. The calendar arranges conflicting cards in side-by-side lanes, reuses a lane after a visit ends, and widens later cards into any lanes that remain open for their whole visit. No-property availability blocks, such as Tech Unavailable, remain exclusive: neither a property visit nor another availability block can overlap them. The check looks only at service time; commute time isn't counted.

Overnight visits can run past midnight. The day-boundary error applies when a cascaded scheduling change would make a following visit start on the next day.

For work that spans whole days, step 2 has an All day checkbox when you're creating a new exact-time visit (it isn't shown when editing an existing visit or for estimated-duration visits). Turn it on and set a start and end date to create a visit across that range; it uses your business hours and skips weekends. A visit that runs past local midnight is drawn running off the bottom edge into the next day, and its time row shows a date range instead of a single day.

After you move an already-scheduled visit or delete one, an Undo button appears at the bottom of the screen for a few seconds - click it to reverse that change. To unschedule a backlog visit you just placed through the form, drag it back to the backlog.

> **Where to find it:** On the calendar itself: drag a visit card from the backlog onto a technician's column, drag an already-placed card to a new slot, or click and drag an empty part of a column to draw a new visit. In the Month view, drag a card onto another day to move it there. Multi-day and all-day options live on step 2 of the visit form.

## Related guides

* [Schedule, reschedule, or reassign a visit](/customers-and-work/scheduling/schedule-reschedule-or-reassign-a-visit.md)
* [See and manage your schedule](/customers-and-work/scheduling/see-and-manage-your-schedule.md)
* [Switch how the schedule is shown](/customers-and-work/scheduling/switch-how-the-schedule-is-shown-week-month-map.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)


---

# 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/drag-and-drop-to-schedule-move-reassign-and-handle-conflicts.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.
