Time & Leave Module

The Time & Leave module covers PTO requests, leave balances, timesheets, team availability, and company / Sparko-managed holiday calendars.

Overview

The Time & Leave module provides:

  • PTO request submission, approval, and cancellation
  • Per-policy leave balances + accruals + carryover
  • Custom leave types (with curated icon picker)
  • Team Calendar with privacy-by-default gating
  • Country holiday calendars (Sparko-curated, auto-imported) + custom company holidays
  • Timesheets with clock-in / clock-out + break tracking
  • Per-policy HR Admin manage mode with audit trail

PTO Dashboard

The PTO Dashboard is the employee landing surface for Time & Leave. It opens at Time & Leave > PTO Dashboard.

Layout

My Time Off

12.5 days available · 4 days pending

+ Request time off Upcoming requests 2 Next: May 27 · Vacation Pending approval 1 Submitted May 12 Used this year 7.5 d Across 4 leave types Carryover expiring 2.0 d Use by Jun 30
<div style="background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px;">
  <div style="font-weight: 600; color: #111827; margin-bottom: 8px;">My balances</div>
  <div style="display: flex; justify-content: space-between; padding: 6px 0;"><span>Vacation</span><span style="font-weight: 500;">12.5 d</span></div>
  <div style="display: flex; justify-content: space-between; padding: 6px 0;"><span>Sick</span><span style="font-weight: 500;">5.0 d</span></div>
  <div style="display: flex; justify-content: space-between; padding: 6px 0;"><span>Personal</span><span style="font-weight: 500;">2.0 d</span></div>
  <div style="display: flex; justify-content: space-between; padding: 6px 0;"><span>Volunteer</span><span style="font-weight: 500;">1.0 d</span></div>
</div>

The page uses a 2×2 grid for activity tiles and a stretched right-column balance card.

Requesting time off

Click + Request time off to open the request modal:

  1. Pick the leave type — the request form shows a fixed set of built-in types (Vacation, Sick, Personal, and similar); custom leave types your HR Admin has created aren't shown here yet, since listing them requires a permission most employees don't hold.
  2. Pick the date range (or a single day).
  3. Add a note.
  4. Submit — your manager is notified and the request appears under "Pending approval" until they decide.

You can cancel a pending or future-approved request at any time from the same dashboard.

Coverage signals (managers & HR)

If you approve time off, the dashboard adds a Coverage signals card. It scans the next 30 days and flags date ranges where two or more people on the same team are out at once — the moments when coverage is actually at risk. Each signal shows the department, the dates, how many of the team are out (with a severity of Watch / At risk / High risk based on the share of the team affected), and whether any of the overlap is still awaiting your approval. A manager sees only their own reporting line; HR sees every department. Selecting a signal opens the Team Calendar for a closer look.


Team Calendar

Open Time & Leave > Team Calendar to see who's out across your team or company.

Two view modes

  • Month — calendar grid with a chip per person per day they're out.
  • Timeline — employees down the rows, days across the columns, blocks spanning leave periods.

Use the toggle in the page header to switch.

Both views follow your company's configured work week. Weeks start on your first working day, and your non-working days are shaded, so a Sunday to Thursday company sees Friday and Saturday shaded rather than Saturday and Sunday. HR sets this in Admin > Settings > Time & Leave.

Privacy by default

When you look at someone else's leave on the Team Calendar:

  • Your direct manager and HR Admins see the specific leave type (e.g. "Vacation", "Sick", "Bereavement") and any notes.
  • Other colleagues see only that the person is "Out" on those dates — never the type or notes.

This privacy gate is enforced server-side: the API does not return leave-type details to viewers who shouldn't see them. There is no way to expose it through the frontend alone.

Rules summary:

  • HR Admin / time_leave.requests.view_all → always sees full detail.
  • Manager (time_leave.requests.view_team) → full detail for their direct and indirect reports.
  • Everyone else → "Out" only, except for themselves.

PTO Policies (HR Admin)

HR Admins manage PTO policies + leave types at Time & Leave > PTO Policy.

View mode (overview)

The default view is a flat read-only table showing all active policies with 7 columns: name, scope, accrual rule, carryover, leave types covered, employees on this policy, last updated. An Edit policies button in the top-right opens the Manage interface for HR Admins.

PTO Policies Edit policies
Policy Scope Accrual Carryover Leave types Employees Updated
Full-time US Global 15 d/yr accrued monthly 5 d / 6 mo Vacation, Sick, Personal 142 Apr 14
Contractors Employment-type Unpaid Vacation 14 Mar 21

Manage mode

Clicking Edit policies flips the page into Manage mode: a 2-pane layout with the policy / leave-type sidebar on the left and a per-policy editor on the right.

The sidebar has two accordion sections:

  1. Policies — all PTO policies, each opens an editor with four subsections:
    • Basics — name, description, scope (Global / Locations / Employment types), effective date.
    • Accrual — accrual method (Annual lump, Monthly accrual, Per pay period), rate, max balance.
    • Carryover — carryover allowance, expiration window, blackout periods.
    • Approval — required approver chain (Manager / HR / Custom).
  2. Leave types — all leave types available in your company:
    • Built-in (13 types) — Sparko-curated types (Vacation, Sick, Personal, Bereavement, Jury Duty, Parental, etc.) which can be hidden per company but not edited.
    • Custom — leave types created by your HR Admin (e.g. "Acme Hack Week"), with the curated 24-icon picker for visual identity.

Each save creates an audit-log entry — who changed what, when — preserved for HR review.

Custom leave types

HR Admins can create custom leave types via the Leave types accordion. Pick a name + icon from the 24 curated icons (umbrella, palm tree, medkit, plane, baby, gavel, paw, books, mountain, heart, etc.) + optionally tie it to specific policies.

Known limitations: the employee request modal currently only offers the built-in leave types — a custom type you create here isn't yet selectable from an employee's own request form. Separately, the request modal's "Military" option currently has a mismatched internal code and will fail to submit ("No PTO policy found") until this is fixed — avoid using it for now and log the leave manually via HR if a military-leave request comes up.


Holiday Management (HR Admin)

Open Time & Leave > Holiday Management to manage which holidays your company observes.

Country holiday calendars

Sparko curates public-holiday data for US, UK, Canada, India, Singapore, Australia, and the UAE. To add one, click Subscribe to country, pick a country, review the preview of dates it will add, and apply — this creates a company-owned "{Country} (Auto-imported)" calendar populated with that year's holidays.

Once imported, the calendar is yours to tune: mark an individual holiday not observed (e.g. it falls outside your operating model), edit or delete a date, or Re-import to pull the latest curated dates (already-present dates are skipped, so your edits survive). Unsubscribe removes the whole country calendar.

Automatic: when you add an employee based in — or remote for — a supported country that your company doesn't have yet, that country's calendar is imported for you, so a new hire's region has its holidays from day one.

Country not in the curated list? Ask the AI assistant to generate that country's public holidays and it will build a calendar for you — this is currently the way to cover a country outside the curated set above.

Custom company holidays

The left rail also lists your company's own holiday calendars (e.g. "Acme Company Days") for company-specific observances like founder's day, summer Friday, or an end-of-year shutdown. Every holiday row has an Observe / Not observed toggle plus edit and delete actions.

Upload holidays from a CSV

Have a year of company dates in a spreadsheet? Click Upload CSV in the page header.

  1. Pick which of your custom calendars the dates go on.
  2. Choose the file. Your columns must include date (formatted 2026-12-25) and name; you can also include is_observed, is_recurring and recurrence_rule. Up to 500 rows per file.
  3. Sparko lists every row it read with a check result. Rows with a problem (missing date, missing name, a date that isn't a real calendar date) are called out by row number.
  4. Fix any flagged rows and pick the file again. The import is all-or-nothing, so Import stays disabled until every row passes.
  5. After importing you see the counts straight from the import: how many were added, how many were skipped because that date was already on the calendar, and how many rows were read.

Dates already on the calendar are skipped rather than duplicated, so re-uploading a corrected file is safe.

Employee view

Employees see their final, merged holiday calendar — every observed holiday across their applicable calendars — on their PTO dashboard. They don't see observance overrides or which calendar a date came from, only their effective working calendar.


Timesheets

For hourly employees, the Time & Leave > Timesheet page tracks clock-in / clock-out + breaks.

Clock card

The top of the page is a clock card with:

  • A large Clock in / Clock out button.
  • Live elapsed-time display.
  • A break button (Start break / End break) that subtracts break minutes from the working total on clock-out.

Progress tiles

Four progress stat tiles below the clock summarize the week:

  • Hours worked
  • Hours scheduled
  • Overtime
  • Hours remaining

Daily entries

Below the tiles is a per-day breakdown with clock-in, clock-out, break minutes, and total.

Fixing an entry

Got a time wrong? Open the entry and edit it. You can change:

  • Clock-in and clock-out
  • Break minutes
  • Project and what you worked on

The total hours recalculate from the new times, and the weekly total updates with them. Two checks apply: clock-out has to be after clock-in, and an entry can't overlap another entry on the same day. Entries on an approved timesheet can't be edited.

Sparko doesn't run payroll. Approved timesheet hours, overtime, and PTO days are logged and reportable (see Manager Analytics below) so they're ready to hand to whatever payroll process or provider you use — there's no automatic payroll feed today.


Calendar Subscription

From your profile, mint a personal calendar-subscription link (webcal URL) that feeds your approved leave into Google Calendar, Outlook, or Apple Calendar automatically. You can list your active subscription links and revoke one at any time.


Approval Delegation (Manager)

Managers can delegate approval authority for a date range — useful when you're on leave yourself. Set a start/end date and scope the delegation to PTO only, timesheets only, or everything. Sparko can also auto-delegate for you: if your own PTO request is approved, your delegate is activated automatically for those dates.


Timesheet Rules: Work Week & Overtime (HR Admin)

Under Admin Settings > Time & Leave > Timesheet rules you can configure:

  • Work week — which days of the week count as working days, and which day the timesheet week starts on. The default is Monday–Friday with weeks starting Monday. Setting this matters everywhere business days are counted: PTO requests only deduct configured working days (a Friday–Saturday weekend never burns leave for a Sunday–Thursday team), timesheet weeks anchor on your chosen start day, and utilization reports use your working days for expected hours.
  • Overtime thresholds — daily/weekly hours before overtime kicks in.

Both can be set company-wide (edit the Default rule) or overridden for specific combinations of country, employment type, and department — useful where local rules differ (e.g. a Sunday–Thursday work week for a Gulf office, or a different daily threshold in one country). The most specific matching rule wins per employee.


Manager Analytics

Five reports under Time & Leave > Reports (manager/HR Admin):

  • PTO liability — each employee's accrued, unused leave valued in money (accrued days × daily rate from salary).
  • Utilization — hours worked vs. available capacity, capacity already netting out approved PTO.
  • Absence trends — total and average PTO days per department over a date range, with a breakdown of the most common leave types taken.
  • Approval speed — average time between a request being submitted and decided, plus approval/rejection rates and how many requests are still pending.
  • Overtime summary — total overtime hours with an estimated cost.

Known limitation: the overtime summary's cost estimate uses a flat $45/hr rate for every employee regardless of their actual salary or country — treat it as a rough order-of-magnitude figure, not an accurate cost, until it's tied to real pay data.


Approvals (Manager / HR Admin)

Managers see PTO requests from their direct reports under Time & Leave > Approvals (and also on the Approvals home page).

For each request, you can:

  • Approve — request becomes a confirmed booking; the employee's balance is deducted.
  • Reject — request is closed; balance is untouched. You can add a note explaining the rejection.
  • Suggest other dates. When rejecting because of timing rather than the request itself, propose a later window. Pick how far to move it and Sparko works out dates covering the same number of working days, skipping weekends and the holidays on that employee's calendar. The suggestion goes to them with your note. Only approvers on that request can use this.
  • View context — the request modal shows the requester's current balance, any overlapping team leave during the same window, and the impact on team coverage.

HR Admins see all company-wide pending requests with the same controls.

AI summary for an approval decision

Where to find it: in the Approve request window, between the balance tiles and Schedule conflicts.

The approval modal already shows days requested, balance before and after, notice given, who else on the team is out, and whether you're away too. Sparko adds two sentences pulling that into a read: what actually matters for this decision.

It is built from the same data the tiles beside it show, so the sentence can never describe a different set of facts than the numbers on screen.

It does not recommend approving or denying. That is your call, and a model nudging one way on somebody's time off is not something anyone asked for. It leads with whatever would change the decision — a coverage gap, short notice, a balance going negative — or says the request looks routine and why.

If AI is unavailable, the modal falls back to a plain summary of the same facts rather than showing an error.

Requires AI to be enabled for Time & Leave in Admin Settings.


Team leave patterns (Manager / HR Admin)

Where to find it: Analytics → Time & Leave → Patterns tab.

Absence patterns worth noticing across your own team, over the last six months by default.

This is rule-based, not AI. These are counts over dates, and a model asked to spot "unusual" absence patterns will invent one — somebody's sick leave being the worst place in the product to be confidently wrong.

Four patterns, each shown with its counts and a plain reading:

  • Repeated long weekends — single days taken on a Monday or Friday. Usually just a preference; worth noticing only alongside something else.
  • Frequent single-day sick absences — can point to a health issue or a workload one. A conversation, not a flag.
  • Repeatedly cancelled time off — someone giving up their own booked leave again and again is a burnout signal.
  • No leave taken at all — the strongest of the four. Rest that is never taken is not rest deferred.

Anyone with nothing notable simply doesn't appear, so this cannot become a company-wide absence league table. Managers see their own reporting line.

Not taking leave also feeds retention risk. Time since someone last took a non-sick day off is part of their flight-risk score — sick days are excluded, because being ill is not rest, and people in their first few months are excluded, because "hasn't taken leave yet" just means "recently joined".


Permissions reference

Permission What it grants
time_leave.requests.submit Submit own PTO requests
time_leave.requests.view_own See own requests on dashboard
time_leave.requests.view_team See team's requests + full leave-type detail on Team Calendar
time_leave.requests.view_all See all company PTO requests + full leave-type detail anywhere
time_leave.requests.approve Approve / reject team requests
time_leave.policies.view_all View PTO policies (overview table)
time_leave.policies.edit Edit PTO policies
time_leave.leave_types.manage Manage leave types
time_leave.holidays.view View company holiday calendar
time_leave.holidays.manage Subscribe to Sparko calendars + manage custom holidays
time_leave.timesheets.submit Clock in / out + submit timesheets
time_leave.timesheets.approve Approve direct reports' timesheets

System roles already include these by default — see your HR Admin if access is missing.


Related guides

Still need help? Reach us at [email protected].

← Back to Help Center