> 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 resource capacity across active Jobs. See who is working on what, balance workload, and manage productivity in one live view built for agency operations.

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

Directly beneath each user’s capacity bars is a row dedicated to their **Meetings**. For each day it shows the **number of meetings** and, below the line, the **total combined meeting time** for that day. Meetings sync from the user’s connected calendar (see Integrations).

### 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 **4 weeks at a time** and is scrollable. To move the window forward or back, click the **left or right chevron** in the date bar. Each click shifts the window by two weeks, so the next click forward reveals the following two weeks.

{% 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 user’s daily capacity comes from their **Working Hours** profile under **Settings > Users > (User) > Working Hours**, where each working day has an **hrs/day** value. The bars are calibrated to these hours, so every person’s schedule reflects their own capacity rather than a fixed company-wide number.

* 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

Each capacity bar can contain up to three colours, stacked to show the make-up of the day:

* **Dark blue** — meeting time.
* **Light blue** — scheduled Task time.
* **Red / pink** — overtime, meaning time booked above the user’s working hours for that day.

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** icon marks a **full leave day**.
* An **X** marks a **non-working day** from the user’s Working Hours profile.

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**.

* You can schedule time on any **grey block** (within the Task’s timeline).
* You cannot schedule on **white cells** after the grey track, because that would book work after the due date. The grey track acts as a timeline guide, keeping scheduling inside the Task’s agreed window.

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.

{% 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** — locks the block’s current time so it stays fixed while other blocks recalculate.
* **Edit and recalculate** — edit the block’s scheduled time, keep it locked, and recalculate the remaining unlocked blocks.

**On a locked scheduled block:**

* **Unlock and recalculate** — unlock the block, return it to the evenly-distributed pool, and recalculate the row.
* **Edit and recalculate** — edit the block’s scheduled time, keep it locked, and recalculate the remaining unlocked blocks.

### 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 %}

### Unlock a block

* Right-click a locked block and choose **Unlock and recalculate**.
* The block returns to the evenly-distributed pool and the row recalculates.
  {% endstep %}

{% step %}

### Remove scheduled time

* Left-click a **green block**.
* Drag horizontally to remove the scheduled time.
  {% 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 %}

## Booking leave, public holidays, and off days

### Full-day leave (quick way)

Right-click a block and select **Schedule Leave Day**. This is the shortcut for booking a single user’s full leave day directly from the Resource Planner.

### Full-day leave (calendar way)

The longer method is on the **Calendar** tab: create an all-day meeting, assign the user, set the start and finish dates, and check **Leave**.

### Company-wide off days and public holidays

For a day the whole company is off, use the **everyone shortcut**: in the **Add Users** field of the New Event slider, click the **users +** (add everyone) icon to invite the full team at once.

{% 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 %}

## Searching, filtering, and views

### Search

Use the **search bar** to filter the Resource Planner by **Task**, **user**, or **Client**.

{% 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 Manager filter** — show Tasks for a specific Account Manager’s Jobs.
* **Overdue** — Tasks not marked Completed after their due date.
* **Overrun** — Tasks that have exceeded their estimated time.
* **Unplanned Time** — work not yet scheduled.

### 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** — an overall percentage of how booked the studio is across the next two weeks.
* **Overdue** — count of Tasks past their due date without completion.
* **Overrun** — count of Tasks over their estimated time.
* **Unplanned Time** — total hours of work not yet 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 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://help.agencydesk.io/task-schedule/resource-planner.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.
