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

# Resource Planner permissions

> Who can plan work: block.manage and block.manageOthers, why viewing a teammate's calendar needs time.viewOthers, and the Pro plan gate.

Two capabilities govern planning, and a third governs looking.

| Capability           | What it unlocks                                                       |
| -------------------- | --------------------------------------------------------------------- |
| `block.manage`       | Plan your own calendar – create, edit, move, delete and leave blocks. |
| `block.manageOthers` | Plan for a teammate – put blocks on their calendar and move them.     |
| `time.viewOthers`    | See a teammate's calendar at all.                                     |

## Role defaults

| Role            | `block.manage` | `block.manageOthers` | `time.viewOthers` |
| --------------- | -------------- | -------------------- | ----------------- |
| Owner           | Yes            | Yes                  | Yes               |
| Admin           | Yes            | Yes                  | Yes               |
| Project Manager | Yes            | Yes                  | Yes               |
| Finance         | No             | No                   | No                |
| Member          | Yes            | No                   | No                |
| Contractor      | Yes            | No                   | No                |
| Client          | No             | No                   | No                |

<Note>
  `block.manage` mirrors `time.track` – every role that records time can plan its
  own calendar. `block.manageOthers` mirrors `time.editOthers` – the delivery
  approver tier. Finance is a money role, not a delivery one, so it plans nothing.
</Note>

See [/concepts/roles-and-capabilities](/concepts/roles-and-capabilities).

## Seeing versus scheduling

The Planner separates the two deliberately.

**Viewing is plural.** With `time.viewOthers` you can overlay any number of
teammates on one grid and read the whole team's week.

**Scheduling is singular.** A new block has to land on somebody's calendar, and
a day-off shade belongs to somebody's week. So creating and dragging only work
while the member picker names **exactly one** person.

| Selection                      | Banner                                                          | Can create?                    | Can drag?                      |
| ------------------------------ | --------------------------------------------------------------- | ------------------------------ | ------------------------------ |
| Just you                       | –                                                               | Yes                            | Yes                            |
| One teammate                   | *"Viewing {name}'s calendar"*                                   | Only with `block.manageOthers` | Only with `block.manageOthers` |
| One teammate, no manage rights | *"Viewing {name}'s calendar (read-only)"*                       | No                             | No                             |
| Several people                 | *"Showing N calendars. Pick one person to add or move blocks."* | No                             | Per block – see below          |

Dragging is decided **per block**, by whose calendar it sits on. Inside an overlay
your own blocks stay movable while a teammate's need `block.manageOthers`.

## Capability is not scope

Holding `time.viewOthers` says you **may** see other people's calendars.
Supervision scope says **whose**.

The member picker only offers people inside your scope. A Project Manager scoped
to one group sees that group, not the whole workspace – even though the
capability is identical to an Admin's.

The participant picker on a block works the same way. See
[/concepts/supervision-scope](/concepts/supervision-scope).

<Warning>
  Hiding a control is a convenience, never the boundary. Every block write is
  re-checked on the server against the capability, the scope, the app switch and
  the plan. A stale browser tab cannot plan onto a calendar it should not reach.
</Warning>

## What each action requires

| Action                                      | Needs                                                                                                                  |
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Open the Planner                            | The Planner app on, and **Pro**                                                                                        |
| Create a block on your own calendar         | `block.manage`                                                                                                         |
| Edit or delete your own block               | `block.manage`                                                                                                         |
| Drag or resize your own block               | `block.manage`                                                                                                         |
| Create a block on a teammate's calendar     | `block.manageOthers`                                                                                                   |
| Edit, move or delete a teammate's block     | `block.manageOthers`                                                                                                   |
| Add or remove participants                  | `block.manage` on your own block, `block.manageOthers` on someone else's, plus scope over each person added or removed |
| Leave a block you are a guest on            | `block.manage`                                                                                                         |
| Overlay teammates on the grid               | `time.viewOthers` plus scope                                                                                           |
| See the capacity strip for teammates        | `time.viewOthers` plus scope                                                                                           |
| Connect, sync or disconnect Google Calendar | `block.manage`, and the Calendar app on                                                                                |

<Note>
  Only the participants that actually **changed** are permission-checked. Re-saving
  a block with the same roster does not demand permission over every teammate
  already on it.
</Note>

## Plan and app gating

| Gate           | Detail                                                                                 |
| -------------- | -------------------------------------------------------------------------------------- |
| **Plan**       | Resource Planner is **Pro**. On Free it stays in the sidebar with a blurred paywall.   |
| **App**        | Resource Planner, Work group, on by default.                                           |
| **Depends on** | The **Projects & tasks** app – a planned block is allocated against a project or task. |
| **Enables**    | The **Calendar** app, which requires Planner and is also Pro.                          |

Turning the Planner off hides it and stops blocks syncing to calendars. Every
planned block is kept.

"App off" and "not on your plan" are different states. Off means hidden
completely. Not on your plan means visible with a paywall. See
[/concepts/apps-and-modules](/concepts/apps-and-modules) and
[/concepts/plans-and-features](/concepts/plans-and-features).

## Example

Northwind Studio:

| Person        | Role            | What they can do in the Planner                                              |
| ------------- | --------------- | ---------------------------------------------------------------------------- |
| Maya Ellis    | Owner           | Plan anyone's calendar, overlay everyone.                                    |
| Tom Whitfield | Admin           | The same.                                                                    |
| Priya Raman   | Project Manager | Overlay her delivery group, plan for any of them, and plan her own week.     |
| Daniel Okafor | Finance         | No Planner access – Finance holds no block capability.                       |
| Sarah Lin     | Member          | Plan her own week. No member picker, so she only ever sees her own calendar. |
| Ana Ferreira  | Contractor      | The same as Sarah.                                                           |
| Ruth Castillo | Client          | Nothing – the Planner is not part of the portal.                             |

If Maya wants a senior designer to plan for the design group, she creates a
custom role from Member, adds `block.manageOthers` and `time.viewOthers`, and
sets their supervision scope to that group. See
[/team/custom-roles](/team/custom-roles).

## Common questions

<AccordionGroup>
  <Accordion title="Why can a Member not see anyone else's calendar?">
    Member does not hold `time.viewOthers`. The member picker is not shown, so
    they always plan their own week.
  </Accordion>

  <Accordion title="Can I let someone plan for a team but not edit time entries?">
    Yes. `block.manageOthers` and `time.editOthers` are separate capabilities.
    Grant one without the other through a custom role.
  </Accordion>

  <Accordion title="Why can I see a teammate's calendar but not change it?">
    You hold `time.viewOthers` but not `block.manageOthers`. The banner says
    "(read-only)".
  </Accordion>

  <Accordion title="Why is drag-to-create switched off?">
    You are overlaying more than one calendar. Pick exactly one person.
  </Accordion>

  <Accordion title="Can a contractor be planned for by a manager?">
    Yes, if the manager holds `block.manageOthers` and the contractor is inside
    their supervision scope.
  </Accordion>

  <Accordion title="Does Finance really get no Planner at all?">
    Correct. Finance owns the money surface, not delivery. Grant `block.manage`
    through a custom role if you need it.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                               | Fix                                                                                                                 |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| No **Planner** in the sidebar         | The app is off in Settings → Apps, or the Projects & tasks app it depends on is off.                                |
| A blurred paywall over the Planner    | The workspace is on Free.                                                                                           |
| No member picker                      | You do not hold `time.viewOthers`.                                                                                  |
| A teammate is missing from the picker | They are outside your supervision scope.                                                                            |
| A drag snaps back with "Forbidden"    | The block belongs to someone else and you lack `block.manageOthers`.                                                |
| **Save block** is disabled            | You lack permission on that person's calendar, the times are inverted, or the block has neither a task nor a title. |
| No **Add Google Meet** switch         | The block is not yours, or your Google Calendar is not connected.                                                   |

## Related guides

<CardGroup cols={2}>
  <Card title="Roles and capabilities" href="/concepts/roles-and-capabilities">
    The whole permission model.
  </Card>

  <Card title="Supervision scope" href="/concepts/supervision-scope">
    Whose calendars you can reach.
  </Card>

  <Card title="Custom roles" href="/team/custom-roles">
    Move a block capability to another role.
  </Card>

  <Card title="Plans and features" href="/concepts/plans-and-features">
    Why the Planner is Pro.
  </Card>

  <Card title="Planner overview" href="/planner/overview">
    Back to the grid.
  </Card>

  <Card title="Multi-person blocks" href="/planner/multi-person-blocks">
    Permissions on a shared block.
  </Card>
</CardGroup>
