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:
- 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.
- Pick the date range (or a single day).
- Add a note.
- 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:
- 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).
- 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? Sparko can generate that country's public holidays for you. It follows the same approve-then-apply shape as the curated countries: you get a preview listing every date it produced, which ones are new and which already exist on your calendar, and nothing is written until you apply. Only the rows you saw are imported — Sparko does not re-generate at apply time, so the calendar can never contain a date you did not review.
Because the dates are generated rather than curated, check them before applying.
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.
- Pick which of your custom calendars the dates go on.
- Choose the file. Your columns must include date (formatted
2026-12-25) and name; you can also includeis_observed,is_recurringandrecurrence_rule. Up to 500 rows per file. - 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.
- Fix any flagged rows and pick the file again. The import is all-or-nothing, so Import stays disabled until every row passes.
- 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.
Days with nothing logged still get a row, so a gap in the week is visible rather than silently missing. The row says which kind of gap it is: a non-working day where no entry is expected, today before you have clocked in, or a working day with no entry at all.
Adding an entry for a day you forgot
Forgot to clock in? A working day with no entry carries an + Add entry button. Fill in the clock-in and clock-out, break minutes, and optionally the project and what you worked on. The total hours are worked out from the times you enter.
The same two checks as editing apply: clock-out must be after clock-in, and the entry cannot overlap another entry on the same day. The button is disabled once the timesheet has been submitted.
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
Subscribe Apple Calendar, Google Calendar or Outlook to your Sparko time-off feed, so your leave shows up alongside the rest of your calendar without you copying anything across.
Where: your profile, under Account Settings > Calendar subscription.
Setting it up
- Click Get my calendar URL.
- Copy the URL and paste it into your calendar app's "subscribe to calendar" or "add by URL" option.
- Your calendar refreshes on its own schedule from then on.
What is in the feed
- Your approved time off, as all-day events that do not mark you busy
- The public holidays on the holiday calendar you are assigned to
Only your own entries. Nobody else's leave is in it.
Keeping it safe
- The URL is unique to you and read-only. Anyone with it can read your feed, so treat it like a password.
- Sparko never shows an existing URL a second time. If you lose it, use Reset URL, which revokes every subscription you have and issues a fresh one. Your calendar app will need the new URL.
- You can hold up to five subscriptions at once, and each one expires after a year.
- A URL only works on your own company's Sparko address.
Generating a URL is available from the Growth plan. Listing and revoking what you already have stays available on any plan, so you can always wind a subscription down.
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.
Needs your attention on the Time Off page lists both leave requests and submitted timesheets awaiting you. Every row decides in place: Approve, or Reject with a reason. Review opens the full timesheet when you want the detail first.
Nobody decides their own request
You cannot approve or reject your own time off, whatever your role. That holds for the indirect case too: if an approver has delegated their authority to the person who filed the request, neither of them can sign it, so Sparko marks that step as skipped and passes the request to the next approver.
When a request is built, the requester is never placed in its own approval chain. If there is no manager, Sparko looks for an HR admin, then walks up the reporting line, then falls back to a Super Admin, and only picks someone who actually holds the approval permission.
If a company genuinely has nobody else who can approve, a one-person workspace for instance, the request is approved on submission rather than sitting pending forever. That is recorded in the audit log and flagged for review, so it is visible rather than silent.
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. The summary does not repeat any of that. It gets two sentences for what the tiles cannot show: how the facts interact, and which of the requester's goals fall due while they are out or in the first three working days after they are back.
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.
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.
Reminders about goals due during leave
When leave is approved, the requester is notified if any of their goals fall due during it or in the first three working days after they return, with a link straight to each goal. The same reminder is sent once more in the three days before they go, so leave booked months ahead is flagged again when there is still time to hand it over. These are plain notifications, not AI, and they never repeat beyond those two sends.
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 as a pattern-level count — how many people show that shape — with 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.
The tab never lists people by name: it reports how widespread each shape is, not who shows it, so it cannot become a company-wide absence league table. The place to understand one person's leave is their own record, with context.
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
- People Module — employee directory, profiles
- Performance Module — reviews, goals, and 1-on-1s
- Admin: Roles and Permissions — assigning roles and permissions
Still need help? Reach us at [email protected].
← Back to Help Center