---
key: submit-and-approve-a-timesheet
title: Submit and approve a timesheet
audience: staff
section: projects-tasks
routes: ["/work/time-sheets"]
permissions: ["work.timesheets.read"]
features: ["work.time-sheets"]
since: 0.0.1
updated: 0.0.1
status: published
summary: Find a person's timesheet for a pay period on the Timesheets page, check its entries, submit it, and approve, reject, lock or reopen it as a supervisor.
keywords: [pay period, weekly hours, approve timesheet, reject timesheet, payroll, time card, overtime, sign off hours]
related: [log-time, submit-and-approve-time-entries, start-and-stop-a-timer]
---

In the sidebar, open **Projects & Tasks**, then **Time & Mileage**, then **Timesheets**. The page address is `/work/time-sheets`. A timesheet is one person's time entries for one pay period, added up. Nova creates it on its own the first time that person logs time in the period; you never create one by hand.

## Before you start

- Submitting needs the **Submit time sheets** permission; approving and rejecting need **Approve time sheets**; locking and reopening need **Lock time sheets**.
- A timesheet can only be submitted once it has at least one entry and no timer is still running in it.

## Steps

1. Find the timesheet. Type in **Search timesheets**, or press **Filters** and narrow by **User**, **Status**, **Period Start** and **Period End**.
2. Select the row. The timesheet opens with an **Overview** tab and an **Entries** tab.
3. On **Overview**, read **Submission readiness**. It lists anything that blocks a submit, such as **Add at least one time entry before submitting.** or **Stop all running timers before submitting.**
4. Under **Workflow actions**, press **Submit**. Nova shows **Timesheet submitted.** On a rejected timesheet the button reads **Resubmit**.
5. As a supervisor, on a submitted timesheet press **Approve**, or **Reject**. **Reject Timesheet** asks for a **Reason** and finishes with **Reject timesheet**.
6. Once payroll has taken an approved timesheet, press **Lock**. To change a locked one, press **Reopen** and confirm in **Reopen Timesheet** with **Reopen timesheet**.

## What you see

- The list shows each timesheet's **User**, **Period**, **Total**, **Overtime** and **Status** (**Open**, **Submitted**, **Approved**, **Exported**, **Rejected** or **Locked**).
- The row menu at the end offers the same moves as the detail page: **Resubmit**, **Approve**, **Reject**, **Lock** and **Reopen**, depending on status.
- **Entry preview** on the **Overview** tab shows the first few time entries; the **Entries** tab lists them all with **Started**, **Ended**, **Duration** and **Status**, and each one opens the time entry itself.

## If something looks different

- **Submit** is missing and **Submission readiness** says you do not have permission: your role cannot submit timesheets.
- **Submission readiness** says the timesheet is already submitted, approved, exported or locked: there is nothing left to do at this step.
- A note says approvals are disabled for this timesheet policy: your organization does not use timesheet approval, so entries are approved one by one instead; see [[submit-and-approve-time-entries]].
- **No timesheets found.**: nobody has logged time for the filters you set. Log a time entry first and the timesheet appears; see [[log-time]].
- A person's hours look wrong: fix the individual time entries, not the timesheet. The totals update on their own.
