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

# Create and manage work schedules

> Create work schedules in the Thread admin panel: set a name, time zone, and per-weekday working hours, assign members from the Members page, and enable auto-dispatch scheduling.

<Note>
  **Work schedules** is a limited-availability feature in partner beta. Thread
  enables it per workspace, and only workspace Admins see the **Work schedules**
  area. Contact your Thread representative to request access.
</Note>

Work schedules define when groups of members are available to work. Instead of one workspace-wide setting, each schedule carries its own time zone and per-weekday hours, so a night shift and a day shift can coexist in the same workspace. Auto-dispatch uses these hours when it assigns new threads to the members on a schedule. To learn how auto-dispatch routes threads, see [Auto-dispatch profiles](/inbox/auto-dispatch-profiles).

## Prerequisites

* You have Admin access to the [Thread admin panel](https://admin.getthread.com).
* Work schedules is enabled for your workspace.

## Create a work schedule

<Steps>
  <Step title="Open Work schedules">
    In the Thread admin panel, select **Work schedules** in the left navigation.
  </Step>

  <Step title="Start a new schedule">
    Select **Create work schedule**. Thread opens a full form page because a schedule needs a time zone and hours before it can exist.
  </Step>

  <Step title="Name the schedule">
    Enter a name that identifies the group, for example `Night Shift`. Names must be unique. If the name is already taken, Thread shows **A work schedule with this name already exists** and you need to pick another.
  </Step>

  <Step title="Pick a time zone">
    Under **Hours & time zone**, search for and select the schedule's time zone. All hours on the schedule apply in this time zone.
  </Step>

  <Step title="Set working hours per weekday">
    Check each day the group works and set its start and end times. New schedules default to Monday through Friday, 9:00 AM to 5:00 PM. Each day's end time must be after its start time.
  </Step>

  <Step title="Save">
    Select **Save**. Thread creates the schedule and opens it so you can keep editing.
  </Step>
</Steps>

## Review your schedules

The **Work schedules** list shows a card for each schedule with:

* The schedule name.
* A summary of its hours, for example `Mon - Fri, 9:00 AM - 5:00 PM`. Days with different hours are listed separately so nothing is misreported.
* The time zone with its GMT offset.
* How many members are on the schedule.

Select a card to open and edit that schedule.

## Manage members on a schedule

A schedule doesn't have its own members page. When you edit a schedule, the **Members** row shows how many members it has. Selecting the row opens your **Members** page filtered to that schedule, where you manage who belongs to it.

## Assign schedules from the Members page

With work schedules enabled, the **Members** page in the Thread admin panel gains a **Work schedule** column and filter:

* **Work schedule column**: each member row shows the schedule the member is on, or **None**. A member holds at most one schedule, so the cell is a single select: picking a schedule assigns the member (moving them off any other schedule), and picking **None** removes them from their current schedule.
* **Work schedule filter**: add a **Work schedule** filter chip to show only the members on a specific schedule. A **Team** filter is also available, so you can review coverage one team at a time.

The deep links elsewhere in the product land here pre-filtered: the **Members** row on a schedule opens the list filtered to that schedule, and the dispatch-scope link in an auto-dispatch profile opens it filtered to the profile's teams.

## Enable scheduling for auto-dispatch

<Note>
  Auto-dispatch scheduling is part of the same partner beta as work schedules.
  The settings below only appear when work schedules is enabled for your
  workspace, and only on **Auto-assign** (push) profiles.
</Note>

Beyond assigning threads, auto-dispatch can also book them: with scheduling on, it picks an open time on the assigned member's Planner inside their work schedule's hours. You configure this per profile in the auto-dispatch editor, under **Technician assignment**. See [Auto-dispatch profiles](/inbox/auto-dispatch-profiles) for the rest of the profile configuration.

<Tip>
  Connect [Planner to Outlook Calendar](/inbox/planner-outlook-calendar-integration) so meetings, training, and time off sync into Planner. Auto-dispatch reads Planner when it looks for an open slot, so synced events stop it booking over a member's real commitments.
</Tip>

<Steps>
  <Step title="Turn on Enable scheduling">
    Open an **Auto-assign** profile and flip the **Enable scheduling** toggle. Two settings appear.
  </Step>

  <Step title="Set the minimum notice">
    **Schedule with at least N notice** controls how soon a booking can start. Enter a number, then pick **minutes** or **hours** from the unit dropdown next to it. In minutes the range is 0 to 10,080 (one week); in hours the range is 0 to 168 (one week). The default is 1 hour.

    Switching the unit reinterprets the number you typed rather than converting it. If you enter `30` on **minutes** and switch to **hours**, the field reads as 30 hours (clamped to 168 if it exceeds the hours ceiling), not 0.5 hours.
  </Step>

  <Step title="Set the default booking duration">
    **Default booking duration** sets how long each booking lasts, from 5 to 1,440 minutes (one day). The default is 30 minutes.
  </Step>

  <Step title="Check the coverage summary">
    On a saved profile, a summary line reads how many Inbox Teams, members, and work schedules the dispatch scope covers. Hover the work-schedule count to see each schedule with its members, plus a **No schedule** row listing anyone not on one. The link at the end opens the **Members** page filtered to the profile's teams so you can fix coverage.
  </Step>

  <Step title="Save">
    Select **Save**. If anyone in the dispatch scope has no work schedule, Thread blocks the save with an error naming those technicians. Assign them a schedule (or exclude them from the profile) and save again.
  </Step>
</Steps>

## How scheduled auto-dispatch works

With **Enable scheduling** on, the profile's dispatch changes in one way: a member is only eligible for auto-dispatch if they have an open time on their Planner inside their work schedule's hours. Thread looks for the first open slot that starts after the minimum notice, lasts the default booking duration, and falls within the schedule's weekday windows, searching up to 60 days ahead.

A member fails this check, and is skipped for that thread, when:

* They have no work schedule.
* Their schedule has no working hours.
* Their Planner is fully booked inside the schedule's hours for the next 60 days.

The Planner check is the last of four. For each thread, auto-dispatch tests every member in the profile's dispatch scope in this order and skips a member at the first check they fail:

1. **Available** — toggled on for at least one of the thread's dispatch teams. See [Set your availability for auto-dispatch](/inbox/available-for-dispatch).
2. **Not already tried** — not just assigned this same thread, so a thread that comes back around goes to someone else.
3. **Under capacity** — active threads below the profile's **Max active threads**.
4. **Bookable** — the Planner check above. This one runs only when scheduling is on.

Members who pass are ranked fewest active threads first, and members tied on the same count are chosen between at random rather than always favoring the same person. Thread assigns the thread first, then books it into the slot it found on that member's Planner. If the booking fails after the assignment, Thread keeps the assignment and posts one internal note on the thread saying it assigned the technician but could not schedule it, so you can add time on their Planner manually.

If no member in the dispatch scope has an open slot, the profile's no-technician action fires, the same as when no one is available. See [Auto-dispatch profiles](/inbox/auto-dispatch-profiles) for the no-technician options. With **Enable scheduling** off, dispatch assigns without booking, exactly as before.

## Edit a schedule that has members

You can rename a schedule or change its time zone and hours at any time. If the schedule already has members, Thread shows a warning before you save: auto-dispatch books new threads for those members inside the schedule's hours, so changing the hours changes when they receive work.

## Delete a schedule

Open the menu on a schedule card and select delete.

* A schedule with no members is deleted immediately, with no confirmation.
* A schedule with members shows a confirmation first: those members are removed from the schedule, and auto-dispatch can no longer schedule work for them until they join another schedule.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="How long does a scheduled thread take to appear in Planner?">
    It's booked as soon as auto-dispatch runs on the thread — the assignment and the booking happen in the same pass. If you don't see it, refresh the page, then open the thread's internal notes: auto-dispatch records what it did there, including when a booking failed.
  </Accordion>

  <Accordion title="What exactly does the note say when a booking fails?">
    The assignment stands — booking runs after the thread is assigned, so a Planner failure never leaves a thread unassigned. The internal note reads:

    > Auto-dispatch assigned this thread to \[member] but could not schedule it: the Planner booking failed. Add time on their Planner manually.

    Book the time on that member's Planner yourself.
  </Accordion>

  <Accordion title="Why does Test run show a member as eligible when auto-dispatch never books them?">
    **Test run** previews availability, recent assignment, and capacity — it deliberately skips the Planner scan, so a member with no work schedule still appears under **Eligible for dispatch**. To check scheduling coverage, use the coverage summary on a saved profile: hover the work-schedule count to see a **No schedule** row listing everyone who isn't on one.
  </Accordion>

  <Accordion title="Do I have to use scheduling for Auto-assign to work?">
    No. Scheduling is optional. With **Enable scheduling** off, Auto-assign still assigns threads to the available member carrying the fewest active threads — it just doesn't book time on Planner, and members don't need a work schedule at all.
  </Accordion>

  <Accordion title="Does a booking days out mean that member stops receiving work?">
    No. How much work a member receives is governed by **Max active threads**, not by how far out their bookings land. Auto-dispatch keeps assigning to them while they're under that limit and still have open Planner time inside their working hours.
  </Accordion>
</AccordionGroup>


## Related topics

- [Schedule ticket work in Planner](/inbox/using-planner.md)
- [ConnectWise Manage API Permissions Reference](/integrations/connectwise-permissions-overview.md)
- [Plans and Licenses: AI and Chat License Management](/inbox/plans-licenses.md)
