> 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/create-visits-for-many-properties-at-once.md).

# Create visits for many properties at once

When one customer has many properties that all need the same work — a campus with dozens of buildings, a portfolio of stores — you don't have to create each visit one at a time. The create-visit window has a **One visit | Batch of visits** switch (top right); batch mode creates the whole set in one pass and hands the scheduling to your technicians.

The switch appears when technician self-scheduling is turned on (Settings → Technician App), because a batch is released to technicians to schedule for themselves. Order is up to them; you set the window and who does the work.

## Step 1 — Add Details: customer, properties, dates, and shared details

1. On the Scheduling page, select **New Visit**, then **Batch of visits** in the top right.
2. Search for and select the **customer**. Every property at that customer is listed with its address and asset count.
3. Check the properties to include — use **Select all matching**, the search box, or the asset filters (for example, only buildings with extinguishers). Inactive properties can't be selected. An amber dot marks properties that already have open work.
4. On the right, fill in what every visit shares: **Visit Type**, **Estimated Duration**, the **Start date** and **End date**, and **Technician Instructions**. The window is **All day** by default — technicians pick the actual times, and the end date becomes each visit's due date. Uncheck **All day** to add a **Start time** and **End time**: work starts no earlier than the start time on the first day and wraps by the end time on the last day (which then becomes the exact due moment).

## Step 2 — Adjust & Release

Select **Make Adjustments** to move on. Here you set:

* **Batch name** — how the group appears on the calendar and in the backlog (for example, "Northgate — Aug annual").
* **Who schedules these visits** — pick **Specific technicians** to assign the batch to chosen technicians (their calendars show the reserved window), or **Any technician can claim**. Only technicians with mobile app access are offered — a technician without a login could never see or book the visits.
* **Techs per visit** — for work that needs a crew. If you select exactly as many technicians as each visit needs, that exact crew is booked together; if you select more (or allow any technician), whoever claims a visit picks their teammates.
* The visit list shows every property with its duration and visit type. Select a row to change just that visit's type, duration, or instructions — it's marked **Customized** — or remove it from the batch.
* Select **Create & release**. Every property gets its own job and visit, and the batch is released. Batch visits don't sit in the backlog — they're already claimed for their technicians' window — so the calendar block below is where you'll find them.

## What everyone sees

* **Technicians** get the visits in their mobile **Open** tab, grouped under the batch name with its date range; each card shows the window ("Schedule for Aug 3 – Aug 7"), and booking before it opens shows a clear warning — the window guides, it doesn't block. They work through the buildings in whatever order suits them.
* **The calendar** blocks off each assigned technician's days across the window as an **all-day reservation** — a tinted column with a banner like "Northgate — Aug annual · All day · 38 of 50 left" (a timed window shows its hours, e.g. "9 AM – 3 PM", instead of "All day") — so you can see those technicians are spoken for without 50 cards on the grid. The count ticks down as visits are booked and the block disappears when the batch is done.

## Manage a batch

Click the all-day block on the calendar for a quick summary popover, then **Edit batch** to open the batch:

* **Rename** the batch or **move the window** — moving the due date re-dates every remaining unscheduled visit.
* **Change the technicians** for the remaining visits.
* **Open a single visit** from the list to edit just that one.
* **Cancel remaining visits** — deletes the unscheduled visits (and their jobs). Visits technicians already booked are never touched.

## When the window passes with visits still unbooked

If the end date arrives and some visits were never scheduled, the batch shows up as a single card at the top of the **backlog** — "Northgate — Aug annual · 12 of 50 visits unbooked · Ended Aug 15" — no matter which week the calendar is showing. It's one card for the whole batch, not 50 loose visits.

![Expired batch card at the top of the backlog](/files/hcjZS7gqyGhKZph9lO04)

Click the card to open the batch and decide what happens next: **move the window** to give technicians more time (this re-dates the remaining visits and puts the reservation back on the calendar), **change the technicians**, schedule visits yourself one at a time, or **cancel the remaining visits**. The card goes away on its own once nothing in the batch still needs attention.

![The batch opened from the card](/files/eYhxGX4JuFRtyWAfRRUC)

> **Where to find it:** Scheduling → New Visit → Batch of visits (top right of the window). Requires technician self-scheduling (Settings → Technician App).

## Related guides

* [Let technicians schedule backlog visits](/customers-and-work/scheduling/let-technicians-schedule-backlog-visits.md)
* [Schedule an open visit from the mobile app](/field-operations/mobile/schedule-an-open-visit.md)
* [Create a new visit](/customers-and-work/scheduling/create-a-new-visit.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/create-visits-for-many-properties-at-once.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.
