# How to use bulk actions on the timesheet

**For:** Manager
**You'll need:** A timesheet with rows you want to process together.

You'll select many rows at once and confirm, undo-confirmation, approve, or unapprove them in a single click. Selections persist across pages and reloads, so you can build up a batch over a few visits before acting on it.

## Select the rows

1. In the header, go to **Planning → Management → Timesheet**.
2. Filter the list to the rows you want to act on — see {doc}`view-and-filter`.
3. Tick the checkbox at the start of each row, or tick the checkbox in the header to select every row on the page.

```{tip}
Selections are stored in your browser (localStorage), so they survive reloads, paging, and tab switches. Use the **'Clear selection'** link above the table to start over.
```

## Run a bulk action

With at least one row selected, the action bar above the table shows the bulk buttons:

- Click **'Confirm selected'** to confirm every selected row — same effect as {doc}`confirm-a-time-entry`, applied row by row.
- Click **'Undo confirmation'** to roll every selected row back — same effect as {doc}`undo-a-confirmation`.
- Click **'Approve selected'** to approve every selected row — same effect as {doc}`approve-a-time-entry`.
- Click **'Unapprove selected'** to reverse approval on every selected row — same effect as {doc}`unapprove-a-time-entry`.

A confirmation summary tells you how many rows succeeded and how many were skipped. In dual-approval mode, **'Approve selected'** skips rows that aren't confirmed yet and tells you how many it was waiting on.

## Verify it worked

Each processed row shows its new status badge. The selection clears unless a row failed — failed rows stay selected so you can investigate.

## Locked rows

Already-**approved** rows are locked and skipped, not processed. The summary shows them as locked. See {doc}`locked-period-ux`.

## Related

- {doc}`view-and-filter`
- {doc}`confirm-a-time-entry`
- {doc}`approve-a-time-entry`
