> For the complete documentation index, see [llms.txt](https://help.agencydesk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.agencydesk.io/task-schedule/resource-planner.md).

# Resource Planner

Plan team capacity, book and repeat Task time, remove bookings, add Focus Notes and events, and manage leave in the Resource Planner.

The **Resource Planner** is where Agencydesk turns team capacity into a live operational view. It’s designed around how agency teams actually schedule work: Account Executives balancing multiple active Jobs, users assigned across projects, and capacity fluctuating week to week.

Because Agencydesk is built exclusively for agencies, resource planning happens directly against the Jobs, Tasks, and User capacity already in the system rather than in a separate scheduling tool or spreadsheet. You get one visual of who is working on what, when they’re working on it, and where capacity is either overbooked or available.

## Navigating to the Resource Planner

{% stepper %}
{% step %}
Click **Resource Planner** in the left-hand navigation.
{% endstep %}

{% step %}
The Resource Planner opens as a calendar-style grid, with team members and their Tasks on the left and a timeline of scheduled work on the right.
{% endstep %}
{% endstepper %}

## How the Resource Planner is organised

The Resource Planner is split into two halves: the **left panel** lists people and their Tasks, and the **right grid** plots scheduled time across a timeline of days.

### Department groups

Users are grouped by **Department**, and each group has its own capacity indicator (for example, *Creative 82%*). This lets a traffic manager or studio lead see at a glance which departments are near or over capacity and which have room to take on more work.

### The left panel: users and Tasks

Each user has a name block showing their **name** and their **weekly capacity** (for example, *30 hrs / week*). Beneath each user sit the Tasks assigned to them, each row showing the **Client name** above the **Task name**.

To the right of each Task name is a green pill showing the **remaining time** for that user on that Task.

* If the user is one of two people assigned to a Task, the pill shows only **their share** of the remaining time. For example, `04:21` is that user’s remaining portion, not the whole Task.
* An **orange hourglass** in place of the green pill means there is no time left on the Task for that user. The Task is in overrun.

### The meetings row

A person’s **Meetings** row appears when they have meetings or leave in the visible window. Meeting blocks show the count and combined meeting time for the day. Click a block to open its list of meetings and leave; select an item to open its event details.

Meetings sync from connected calendars; see [Integrations](/company-settings/integrations.md) for setup.

### Adding an event for a person

{% stepper %}
{% step %}
Hover over the person’s name block and click the **Add event** calendar-plus icon. You can also reach it with the keyboard.
{% endstep %}

{% step %}
Check the person already selected in **New event**. Choose the Calendar, dates and times, add the event name and any other attendees.
{% endstep %}

{% step %}
Click **Create event** and confirm invitations if prompted.
{% endstep %}
{% endstepper %}

If the Meetings row is already visible, click an available date cell and use **Add Event** to start with that person and date. The name-block shortcut also works before their first meeting has created a Meetings row.

See [Calendar](/calendar/calendar.md) for invitees, Job links, all-day events and leave.

{% hint style="info" %}
A producer needs to book a first briefing for a new designer. They can start from the designer’s name block, check the preselected attendee and add the briefing, without finding an empty Meetings row.
{% endhint %}

### The today line

A **blue vertical line** marks today across the whole grid, so you always have a reference point when scanning forward or back.

### The draggable divider

The divider between the left panel (Tasks) and the right grid (schedule) is draggable. Drag it right to widen the Task column when you need to read longer Client or Task names, and back left to see more of the timeline.

### The 4-week window and panning

The Resource Planner shows a **4-week window**. Scroll sideways within that window, or use the date arrows at the top-right of the Planner card to load another period.

* **Forward:** moves the window two weeks ahead.
* **Back:** moves four days back from the normal current window, or two weeks back when viewing a future window. The tooltip tells you the current jump.
* At the far-right end of the dates, a grey semicircle arrow also continues forward while keeping your place in the timeline.

The name/date divider can be dragged with a mouse along its height. The old width-step buttons have been replaced by the divider.

{% hint style="info" %}
The window is capped at 4 weeks on purpose. For larger teams the scheduling data gets very large, and loading more than 4 weeks at once would slow the interface down. Panning two weeks at a time keeps the view fast and responsive.
{% endhint %}

## Reading a user’s capacity bars

The bars at the top of each user’s row show how full each day is, calibrated to that user’s own working hours.

### Calibrated to working hours

Each person’s daily capacity comes from **Company Settings > Users > (User) > Working Hours**. Set enabled days and decimal hours in their profile, then Save. **6.5 h** means 6 hours 30 minutes. The bars use that person’s capacity rather than one fixed company-wide day.

See [Setting Working Hours](/company-settings/users.md#setting-working-hours) for daily controls, Copy Monday and Weekly capacity. A regular day off belongs in the profile; use the [Calendar](/calendar/calendar.md) for a particular leave event.

* When a day’s blue bar is filled up to the halfway grey line, that user’s **full working hours for the day are booked**.
* Days marked with an **X** are **non-working days** for that user, based on their Working Hours profile.

{% hint style="info" %}
**Great for** balancing a part-time and a full-time team member fairly. Because each person’s bars are calibrated to their own hours, a 25 hrs/week designer and a 40 hrs/week designer both show “full” when their own capacity is booked, so you don’t accidentally overload the part-timer.
{% endhint %}

### The three bar colours

The capacity bars show meeting time, scheduled Task time, leave and any amount booked beyond the person’s daily capacity:

* **Dark blue:** meeting time.
* **Light blue:** scheduled Task time.
* **Diagonal striped segment:** part-day leave, reducing the time available for bookings.
* **Red / pink:** time booked above the person’s available working hours.

The pink overtime portion sits above the halfway grey line, giving an instant visual cue that a user is overbooked for that day.

### Leave and non-working days

* An **umbrella** marks full-day leave; Task booking is blocked on that day.
* An **X** marks a non-working day from the person’s Working Hours profile.
* Part-day leave leaves the rest of the day available. It appears as a striped capacity segment. If there are no meetings that day, its Meetings block shows an umbrella and the leave hours; if there are meetings too, open the block to see the leave in the list.

Public holidays can be blocked out the same way as leave by inviting the whole team (see [Booking leave, public holidays, and off days](#booking-leave-public-holidays-and-off-days) below).

## Reading the schedule blocks

The right grid is where scheduled time lives. A few visual conventions carry a lot of meaning here.

### Grey track vs white cells

Each Task has a **grey track** running across the days between its start date and due date. If a Task starts on 1 Nov and is due on 4 Nov, you’ll see four grey blocks, ending in a solid dark grey vertical line that marks the **due date**.

* Schedule on grey blocks from today onwards, within the Task’s start/due dates and the person’s working days.
* White cells beyond the due date need an **Extend Due Date** action before scheduling there. Full-day leave blocks booking.

To extend the track, click in the **white area** just after the grey track and select **Extend Due Date**. The grey blocks then extend up to the new due date. To move a whole Job’s dated Tasks and Milestones by the same number of days, use [Timeline Shift Dates](/jobs/timeline.md#shift-dates-for-the-whole-job). Upcoming Planner bookings block that bulk move; it does not rebook people automatically. Review the booked time before changing or removing it.

{% hint style="info" %}
**Great for** protecting deadlines. Because you can’t book time past the due date without deliberately extending it, the grey track stops work from silently slipping beyond what was agreed with the client.
{% endhint %}

### Scheduled time in a block

A block showing a single time (for example, `02:00`) means two hours have been scheduled on that day.

### How time is distributed: even spread vs locked

There are two ways to put time on the schedule, and they behave differently.

**1. Click or drag across grey blocks (even, capped distribution)**

When you click a single grey block or drag across several, Agencydesk spreads the available time **evenly** across the blocks you selected. Each block gets:

> (user’s remaining share of the Task’s unplanned time) ÷ (number of blocks selected)

capped at the user’s **working hours for that weekday**.

The cap is what keeps the spread realistic. Two worked examples, assuming a 6 hr/day profile:

* **40 hours available, drag 3 blocks.** An even split would be over 13 hours per day, but the 6 hr/day cap binds, so each block gets `06:00`.
* **4 hours available, drag 3 blocks.** The even split is under the cap, so each block gets `01:20`.

**2. Enter a specific time (locks the block)**

Any time you type an exact amount into the time input, Agencydesk **locks that block** at the amount you entered. A locked block is fixed and no longer part of the even-distribution pool, so the remaining unlocked blocks recalculate around it. A small **lock icon** in the top-right corner of a block shows it is locked.

{% hint style="info" %}
**Great for** a Task where one day carries the bulk of the work. Enter and lock the heavy day at the exact hours you need, and let Agencydesk balance whatever’s left across the remaining days automatically.
{% endhint %}

### The right-click menu

Right-clicking a block opens a context menu. The options shown depend on the block’s current state.

**On a grey (open, unscheduled) block:**

* **Add and recalculate** — enter a specific time for that day. The block is scheduled at that amount and locked, and the rest of the row recalculates around it.
* **Schedule Leave Day** — book a full leave day on that block (see [Booking leave](#booking-leave-public-holidays-and-off-days)).

**On an unlocked scheduled block:**

* **Lock time block:** fixes its current duration.
* **Edit and recalculate:** changes its duration and locks it.
* **Repeat time:** copies the duration to eligible later empty dates.
* **Add Note:** adds a Focus Note to that person’s booking.

An unlocked, unused booking can be toggled off by clicking it. It does not need a **Remove** menu item.

**On a locked scheduled block:**

* **Remove:** removes an eligible locked booking directly.
* **Edit and recalculate:** changes its duration while keeping it locked.
* **Repeat time:** copies the duration onto eligible later empty dates.
* **Add Note:** adds a Focus Note to the booking.

{% hint style="info" %}
Remove is available for an unused booking today or in the future. It is blocked for worked time, Done for Today or completed Tasks, and today’s booking when the person has a running or parked timer. Removing a booking can redistribute other unlocked bookings on the same Task; locked durations remain fixed.
{% endhint %}

### Orange blocks (free / overrun work)

An **orange block** is scheduled time that has been booked in even though there is no remaining time left on the Task. In other words, every orange block represents **free work**, time booked beyond the Task’s estimated amount.

{% hint style="info" %}
**Great for** spotting margin leak. A row of orange blocks tells an Account Executive that a Task is running over its estimate, so they can step in before the overrun grows.
{% endhint %}

### The Done-for-Today flag

A small **flag in the top-left** of a block means the user has marked that day’s portion of the Task as **Done for Today**. They’ve completed the piece booked in for that day and ticked the Task’s *Done for Today* checkbox. It works much like a Trello done-check: a quick signal of progress without closing the whole Task.

### Active and parked timer icons

Timer icons next to a Task tell you its live tracking state:

* A **green timer** means the user has an **active timer running** on that Task right now.
* A **grey timer** means the user has a **parked timer** on that Task that still needs to be committed.

{% hint style="info" %}
**Great for** traffic and Account Managers who want to see who’s working on what right now. A glance at the green timers shows live activity across the whole team without interrupting anyone.
{% endhint %}

## Scheduling Tasks

{% stepper %}
{% step %}

### Schedule time by dragging (even spread)

* Click a single **grey block**, or drag across several, on the Task’s track.
* Agencydesk spreads the available time evenly across the selected blocks, capped at the user’s daily working hours.
* Release to save. Changes apply immediately.
  {% endstep %}

{% step %}

### Schedule a specific amount (locks the block)

* Right-click an open grey block and choose **Add and recalculate**.
* Enter the time you want scheduled for that day and save. The block is scheduled at that amount and locked, and the rest of the row recalculates around it.
  {% endstep %}

{% step %}

### Edit or lock an existing block

* Right-click a scheduled block.
* Choose **Edit and recalculate** to change its time (keeps it locked), or **Lock time block** to fix its current time.
  {% endstep %}

{% step %}

### Remove a booking

* For an **unlocked** unused booking, click its scheduled block to toggle it off.
* For a **locked** booking, right-click and choose **Remove**. Check the refreshed row; other unlocked time may have moved.
  {% endstep %}

{% step %}

### Extend a Task’s due date

* Click in the **white area** just after the grey track.
* Select **Extend Due Date**. The grey track extends to the new due date, opening up more days you can schedule on.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
Planner changes save as you make them. Wait for saving to finish before changing views or dates. If a booking save is not confirmed, use **Reload bookings** in the warning, then inspect the saved blocks before repeating the change. If the schedule itself failed to refresh, use **Reload schedule**.
{% endhint %}

### Repeating a booking’s time

{% stepper %}
{% step %}
Choose a current or future scheduled block within the Task’s date range.
{% endstep %}

{% step %}
Right-click it and choose **Repeat time**. The Planner checks later bookings and leave before saving.
{% endstep %}

{% step %}
Check the repeated blocks and the time still left unplanned.
{% endstep %}
{% endstepper %}

* Repeats start **the day after** the selected block.
* Each repeated block uses the **full selected duration** and is locked.
* Only empty working dates within the Task’s start/due range are used. Existing bookings and full-day leave are skipped; a working weekend is eligible if it is in that person’s profile.
* Repeats use that person’s remaining assigned estimate after worked and already planned time. A remainder smaller than the selected block stays unplanned.
* If there is no room for another full block before the due date, no repeat is created.

{% hint style="info" %}
A designer has 2 hours unplanned and a 30-minute booking today. Repeat time can add four more 30-minute bookings on eligible empty dates. If only 20 minutes were left, that remainder would stay unplanned.
{% endhint %}

### Adding a Focus Note to a booking

{% stepper %}
{% step %}
Right-click a scheduled block and choose **Add Note**.
{% endstep %}

{% step %}
Check the person and date in the **Focus note** popup. The note belongs to the clicked person’s booking, even when you are writing it for them.
{% endstep %}

{% step %}
Write a short instruction, up to **140 characters**. Type **@** to choose someone assigned to that Task.
{% endstep %}

{% step %}
Click **ADD NOTE**. Use the block’s note icon to open its notes later; an existing note uses **UPDATE NOTE** when edited.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Use a Focus Note for a specific day’s instruction, such as ‘Focus on the email signature today.’ The Task Brief holds the full scope; the Focus Note keeps that day’s priority beside the booking.
{% endhint %}

## Booking leave, public holidays, and off days

### Full-day leave (quick way)

{% stepper %}
{% step %}
Right-click an eligible working-day block and choose **Schedule Leave Day**.
{% endstep %}

{% step %}
Check the person named in **Schedule leave?**.
{% endstep %}

{% step %}
Click **Schedule** to save the full leave day, or **Cancel** to leave it unchanged.
{% endstep %}
{% endstepper %}

### Full-day leave (calendar way)

{% stepper %}
{% step %}
Create a new event from **Calendar**, or use the person’s **Add event** icon in the Planner.
{% endstep %}

{% step %}
Select the person and Calendar, set the leave dates and tick **All day** and **Leave**.
{% endstep %}

{% step %}
Click **Create event** and confirm invitations if prompted.
{% endstep %}
{% endstepper %}

### Part-day leave

For a few hours off, leave **All day** unticked, set the start/end times and tick **Leave**. Check the invited person, then save the event. The remaining hours stay available for scheduling.

{% hint style="info" %}
Leave and **Exclude from planned time** are separate choices. Selecting Leave clears and hides Exclude from planned time so the absence stays visible in the Planner. An ordinary excluded meeting stays visible as an event but does not add to planned time.
{% endhint %}

### Company-wide off days and public holidays

In **New event**, open the invitee picker and click **Select all** to choose the available team. Check the selected people, remove anyone who is working that day, click **Done**, then **Create event**. Use **All day** and **Leave** for a company off day.

{% hint style="info" %}
Leave and holidays work by **inviting users** rather than applying globally. That’s deliberate: it gives you the flexibility to leave specific people off the holiday if they’re working that day for some reason.
{% endhint %}

Full leave days appear as **umbrella** icons on the user’s row.

## Unplanned Tasks

Each user has an **Unplanned Tasks** section listing Tasks that currently have no future scheduled time. A Task lands here if it has never been scheduled, or if it was scheduled previously but has no upcoming booked time left.

When the section is collapsed, a pill shows the **total unplanned time** for that user, so you can see how much unscheduled work is sitting against them without expanding the list.

{% hint style="info" %}
**Great for** a Monday planning session. Expand Unplanned Tasks to see everything waiting to be booked, then drag it onto the week before workloads pile up.
{% endhint %}

### Booking Effect

The **Booking Effect** icon is beside **Refresh** and **Timesheets**. It controls how a Task row moves when bookings put it into or take it out of **Unplanned Tasks**.

{% stepper %}
{% step %}
Open the **Booking Effect** icon menu.
{% endstep %}

{% step %}
Choose **Close up**, **Move and scroll**, or **Stay in place**.
{% endstep %}

{% step %}
If using **Close up**, choose whether **Show notification** is on.
{% endstep %}
{% endstepper %}

* **Close up:** after a short pause, the row closes up and the Task moves to the appropriate section.
* **Move and scroll:** scheduling moves the Task immediately and scrolls to it.
* **Stay in place:** keeps the Task where it is until Unplanned Tasks is opened/closed or the page reloads.

The choice applies immediately and is remembered in this browser. It changes the row’s movement, not the hours you book.

### Sorting a person’s Tasks by bookings

Hover over the person’s name block and use **Sort tasks by booked dates** to return their Tasks to the default order: earliest booked date first, unbooked Tasks last. This replaces that person’s hand-arranged Task order.

## Searching, filtering, and views

### Search

Use Search for a Task, Task Type, Job, Client or person. When a matching Task is inside a closed **Unplanned Tasks** section, the search opens that section for you. Clearing the search closes sections opened by the search; sections you had opened yourself stay as they were.

{% hint style="info" %}
When you filter to show specific Tasks, the **capacity bars at the top of each user’s row do not change**. They always reflect the user’s full schedule, so you keep an accurate picture of their real capacity even while looking at a filtered subset of Tasks.
{% endhint %}

### Expand or collapse all

Click the **−** or **+** to the right of the search box to collapse or expand every user’s schedule at once. Collapsing is useful for a high-level capacity scan across the whole team; expanding drills into the Task detail.

### Filters

The top of the page offers several filters to focus the view:

* **Account Managers:** show Tasks for the selected person’s Jobs.
* **Overdue:** Tasks past their due date without completion.
* **Overrun:** Tasks that have exceeded their estimated time.
* **Unplanned:** work without upcoming bookings.

If matching Tasks are inside collapsed Unplanned Tasks sections, use **Show them** in the notice to reveal them.

### Refreshing the data

A **refresh icon** (the circular recycle arrows) in the top-right reloads the Resource Planner data. It’s much lighter on the browser than a full page reload (Cmd/Ctrl + R), so use it to pull the latest changes without the heavier reload.

## Top counters

Across the top of the Resource Planner you’ll see live counters that summarise the current view:

* **2wk Studio Load:** the studio’s load across the next two weeks.
* **Overdue:** count of Tasks past due without completion.
* **Overrun:** count of Tasks over their estimate.
* **Unplanned:** work still waiting to be scheduled.

These give leadership and traffic managers an instant read on operational health before drilling into any individual user.

## Timesheets

The **Timesheets** button in the top-right flips the Resource Planner around and turns it into a timesheet view of tracked time. See Timesheets for detail.


---

# 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://help.agencydesk.io/task-schedule/resource-planner.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.
