// Team availability, end to end

Who's working,
who's not, and why.

A construction company runs on people-time. If a Site Manager is on annual leave, the Plumber is in training and the Electrician's contractor is out of office, three jobs probably aren't getting done that day. The Holiday Planner is the single place the office sees the team - and the place employees request leave, admins approve it, and allowances stay in check.

8
Leave types tracked
3
Admin views
Per user
Set annual leave allowance
Auto
UK bank holidays
// Team View

One calendar. Whole team. The "which Tuesday can we pour the foundations" view.

Filter who's shown by checkbox, group by role, switch bank holidays on or off. Drag to extend, click to edit. Calendar entries are colour-coded by team member in Team View, by leave type in My Holidays.

August 2025
Mon
Tue
Wed
Thu
Fri
Sat
Sun
28
29
30
31
01 Priya · NICEIC course
02
03
04 James · Summer leave
05 Summer leave
06 Summer leave Marc · Site visit, Plot 12
07 Summer leave
08 Summer leave
09
10
11 Sara · Sick
12 Sara · Sick Ryan · OOO
13 Daniel · Plot 4 callback
14 Marc · Travel to Leeds
15 Emily · AL
16 AL
17 AL
18 Priya · Client review
19
20 Marc · Pasma refresher
21 Marc · Pasma refresher
22
23
24
25 UK Bank Holiday Summer
26 Sara · AL
27 AL James · Subbie review
28 AL
29 Emily · OOO +2 more
30
31
// Eight leave types

Different reasons, different rules - tracked separately.

Annual Leave counts against the allowance and goes through approval. Sick is logged after the fact. Bank holidays auto-import. Each type has its own colour, its own icon, and its own dashboard tile.

Annual Leave

Counts against the allowance. Goes through admin approval before becoming a calendar entry.

Approval · requiredCounts · yes

Sick Leave

Tracked but doesn't count against allowance. Usually logged after the fact, no approval needed.

Approval · noCounts · no

Training

Courses, certifications, CPD. Visible to scheduling so courses don't double-book.

Approval · self-logCounts · no

Site Meeting

Off-site meetings that aren't billable as project work - client reviews, supplier visits.

Approval · self-logCounts · no

Out of Office

Contractor-specific. Generic "not available" - projects know they're off-grid that day.

Approval · self-logFor · contractors

UK Bank Holiday

Auto-imported (England & Wales). Switch on or off from the filter panel - your company doesn't manage them manually.

Source · auto-imported

Aftercare Appointment

Pre-scheduled homeowner visits booked in the Aftercare module appear here too - no double-bookings.

Source · Aftercare

Travel Time

Time spent travelling that isn't billable to a project - kept separate from real work hours.

Approval · self-logCounts · no
// Three roles, three calendars

The same page, sized to whoever is looking at it.

Employee (PAYE)

Their own calendar
  • Personal calendar - only their own entries, colour-coded by leave type
  • Stats by type - days used per category, plus their allowance ledger
  • Submit annual leave requests with title, dates, type and notes
  • Track requests - pending, approved or rejected, with reviewer notes
  • Cancel pending requests until they're decided
Hides team view, allowance editor, approval list

Admin

Three views to switch between
  • My Holidays - their own calendar, no team noise
  • Team View - everyone's calendar, sidebar to filter, capacity table below
  • Requests - pending leave, badge count on tab, approve / reject inline
  • Book on behalf - bypass the request flow, log sickness or training centrally
  • Set allowances - per-employee, per-year, edit any time
Full power - calendar, requests, capacity, allowances

Contractor

Cut-down view
  • One leave type - Out of Office only, no allowance ledger
  • Self-book - log days they're not available, no approval needed
  • Visible to projects - appears on Team View so admins can plan around them
  • Total card - sees only their OOO total for the year, no other types
Hides annual leave, sick, training, allowances
// Approval workflow

From request to calendar entry - without a single email.

Employee

01
Submit request

Open the planner, click + New Request. Title, dates, type, optional notes. Defaults to next available business day.

Annual Leave only triggers approval
02
See it sitting "Pending"

Yellow status label in the Leave Requests panel. Cancel button stays visible until the admin decides - easy to revise dates and resubmit.

04
Get the decision

Approved or rejected, with the reviewer's name and any notes they left. Approved entries land on their calendar automatically - no copy-paste.

Stats & allowance update live

Admin

01
See the badge

Pending count appears on the Requests tab and in the main menu. The persistent indicator that says "you have work to do" - without checking.

Engine of the workflow
02
Review in context

Each pending card shows the requester, dates, day-count, type and their notes. Team capacity table is one scroll away - see who else is off that week.

03
Approve or reject

Optional review note ("enjoy your holiday" / "site visit clashes - try a different week"). Approve in bulk for a quiet August week. Decisions move to Recent Decisions.

Calendar entry created on approval
// Requests, both sides

The admin inbox, and the employee tracker.

Same data, two angles. The admin sees pending and acts; the requester sees status and reviewer notes. Cancel-then-resubmit stays painless because nobody pretends it's an unusual workflow.

Pending requests

4 pending 38 approved YTD 2 rejected
JT
James Thompson Site Manager
Summer holiday - Cornwall
04 Aug → 08 Aug 2025 5 days Annual Leave
Looking to take this week before the kids go back. Plot 12 finals are slated for w/c 11th - Marc can cover that day.
SK
Sara Khan Plumber
Wedding anniversary - long weekend
26 Aug → 28 Aug 2025 3 days Annual Leave
Pre-booked flights, would really appreciate it. Happy to swap a Saturday call-out if needed.
PR
Priya Raman Site Manager
NICEIC training week
29 Sep → 03 Oct 2025 5 days Training
Re-cert is overdue - booked the EICR refresher at the Tonbridge centre. Will keep email on for emergencies.

My requests

Summer holiday - Cornwall Pending
04 Aug → 08 Aug · 5 days · Annual Leave
Half-term cover swap Approved
28 May → 30 May · 3 days · Annual Leave
Hannah Bates · "Approved - enjoy! Marc will cover Plot 8 walkthrough."
Easter break (initial dates) Rejected
14 Apr → 22 Apr · 7 days · Annual Leave
Hannah Bates · "Clashes with Highbury finals - try the following week and I'll approve straight away."
Easter break (revised) Approved
21 Apr → 28 Apr · 6 days · Annual Leave
// Capacity dashboard

Annual leave used vs. allowed - one sentence, one bar.

Below the calendar in Team View. Search by name, filter by role group, sort by any column. Pagination kicks in past ten rows. Edit the year's allowance per person from the same row.

Team - 2025

Name Annual Leave Sick Training Site Meeting Travel
JT James ThompsonSite Manager
12 / 25
2 d 3 d 7 d 4 d
PR Priya RamanSite Manager
22 / 25
0 d 5 d 9 d 2 d
MC Marc CostaElectrician
8 / 22
1 d 4 d 2 d 6 d
SK Sara KhanPlumber
25 / 25
3 d 2 d 1 d 3 d
DO Daniel O'BrienCarpenter
5 / 22
0 d 2 d 3 d 1 d
// Connected to the rest of DuoApp

Holiday data goes where it needs to.

Tasks & scheduling

Assigning a task that spans an assignee's leave dates? You get a warning before the conflict bites - not after.

Aftercare

Pre-scheduled homeowner appointments from the Aftercare module appear here as Aftercare Appointment entries.

Invoicing

The same bank holiday data that drives this calendar prevents invoices being posted on UK bank holidays.

User profile colours

Each person's chosen colour is their entry colour in Team View - and the same colour their avatar uses across the rest of the app.

// Built around real pain points

Designed for vans, sites, and Tuesday mornings.

01

Mobile-first

Site managers approve leave from their phone in the van. Sections stack into a tab bar on small screens - calendar, requests, team, never crammed onto one canvas.

02

The badge is the engine

Pending count lives in the page tabs AND in the main app menu. The persistent indicator that drives the workflow without anybody having to remember to check.

03

One sentence, not two numbers

"12 of 25 annual leave days used" with a small bar carries more weight than 12 and 25 floating apart. Same idea everywhere allowance shows up.

04

Colour + icon, never colour alone

Eight types is a lot. Every entry pairs colour with an icon so the calendar reads even when you're colour-blind, sun-washed or printing it black-and-white.

05

Bank holidays are signal and noise

Default-on for admins planning around them, default-off for employees who just want their own week. The setting sticks per person - switch it once.

06

Cancel-then-resubmit isn't a flaw

Real people get the dates wrong. Cancel stays visible on pending, resubmits don't get a guilty footnote, and admins see the audit trail without anyone being shamed.

Plan around people, not around spreadsheets.

See the Holiday Planner in your account - bring your own team, and we'll walk through approvals, allowances and the bits that connect to Tasks and Aftercare. Thirty minutes.