# Timesheet

The timesheet lists every shift that has finished, one row per shift. Each row carries the scheduled times, the actual clock-in and clock-out, an attendance flag, and a workflow status: **'Published'** → **'Confirmed'** → **'Approved'**.

Find it under **Planning → Management → Timesheet**. The list remembers your filters, sort order, and selected rows between visits.

{{ app_name }} runs the timesheet in one of two modes, set once in **Company settings** — see {doc}`how-confirmation-works`:

- **Manager approval only** — a manager confirms the hours and approves them.
- **Employee confirmation + manager approval** (dual approval) — the employee confirms their own hours first, then a manager approves. Approval is blocked until the row is confirmed.

The typical day-to-day flow:

1. Filter to the rows you care about (one location, one period, status **'Published'**).
2. Edit any clock times that are wrong.
3. Confirm the rows — this records the hours and triggers leave and time-compensation accruals.
4. Approve the rows — this stamps the audit trail and locks them for payroll.

Bulk variants of confirm, undo-confirmation, approve, and unapprove let you process a whole period in one click.

```{toctree}
:maxdepth: 1
:hidden:

how-confirmation-works
view-and-filter
edit-clock-in-clock-out
confirm-a-time-entry
undo-a-confirmation
approve-a-time-entry
unapprove-a-time-entry
bulk-actions
locked-period-ux
employee-access
```
