Skip to main content
Four capabilities govern Time Off.

Role defaults

Project Manager approves leave but does not write the rules. Editing policies, holidays and balances is HR configuration, so it stays with Owner and Admin. You can move it with a custom role – see /team/custom-roles.
Finance can request its own leave and nothing more. It is a working role, not a delivery approver. Client-portal contacts hold no leave capabilities at all. See /concepts/roles-and-capabilities.

Capability is not scope

Holding leave.approve says you may approve. Supervision scope says whose requests you see. A Project Manager with a narrowed scope only sees the queue for the people they supervise. Someone outside that scope never appears, even though the capability is there. The same is true of leave.viewOthers – it unlocks the surface, scope decides the rows. See /concepts/supervision-scope.
The server enforces both. A member without leave.viewOthers is force-scoped to their own rows on every read and every export, whatever the page sends. Hiding a filter in the UI is a convenience, not the boundary.

What each surface requires

Plan gating

Time Off is on Free. Two things inside it are not. On Free, requests keep arriving and keep queueing. The backlog clears the day the workspace upgrades – nothing is lost. See /concepts/plans-and-features.

App gating

Time Off is an app, on by default, in the Work group of Settings → Apps. It has no dependencies on other apps. Switching it off:
  • Hides Time Off from the sidebar and blocks the route.
  • Stops new requests.
  • Pauses accrual for the whole workspace.
  • Keeps every balance and past request.
Accrual does not back-credit the months it was paused for. If you switch Time Off off for a quarter and back on, post adjustments for the missed periods. See /time-off/leave-accrual.
“App off” and “not on your plan” are different states. An app that is off is hidden entirely. A feature not on your plan stays visible with a paywall. See /concepts/apps-and-modules.

Two capabilities, not one, for balances

Reading a balance and moving one are separate on purpose.
  • Reading someone else’s balance needs leave.viewOthers.
  • Moving it needs leave.managePolicy.
A Project Manager can see that Sarah Lin has 11 days left. They cannot give her two more. That takes an Owner or Admin. Your own balance is always readable, no extra capability needed.

Example

Northwind Studio: If Maya wants Priya to run leave policies too, she creates a custom role from Project Manager and adds leave.managePolicy.

Common questions

Yes, if they hold leave.approve. Their own row appears in the queue like anyone else’s. Whether that is acceptable is a policy decision for your team.
Yes. Build a custom role with leave.viewOthers and without leave.approve.
The roster is gated on leave.viewOthers. Their own balance is in the request dialog and on their member record.
Yes. Contractor holds leave.request by default. Assign them to whichever policies make sense – often unpaid leave only.
No. They hold no leave capabilities and never appear in leave data. They do count toward your seat total, which is a billing matter – see /team/seats-and-billing.

Troubleshooting

Roles and capabilities

The whole permission model.

Supervision scope

Who each approver can see.

Plans and features

Free versus Pro.

Apps and modules

Switching Time Off on and off.

Custom roles

Move a leave capability to another role.

Time off overview

Back to the basics.