WorkestraDocs
PlatformTime Tracking

Weekly Timesheet

A 7-day grid of everything you worked on this week — review, edit, and submit the whole week with one click.

Weekly Timesheet

The timesheet is your review-and-submit layer on top of the timer. While the timer captures individual sessions as drafts, the timesheet groups them by week and lets you submit the whole week to your manager in one click.

Two access paths:

  • /time/timer?view=timesheet — the new pivot view that ships with the composer-first timer page. Same dataset as the calendar and list views, just shaped as a grid. Best for at-a-glance "what did I do this week" review.
  • /time/timesheet — the dedicated submit-and-status page. Same grid + a status panel + the Submit button. This is what you open at the end of the week.

Both default to the current week.

Weekly timesheet grid

Screenshot needed — full weekly grid with day columns Mon–Sun, entity rows, daily totals, weekly total + submit button

How the grid works

  • Columns = the 7 days of the week. The first column is your workspace's week_start_day (default: Monday).
  • Rows = one row per entity you tracked time on this week (task, ticket, deal, candidate, or internal description).
  • Cells = total hours for that entity on that day. Click a cell to add or edit hours for that day inline.
  • Top header row = daily total (sum across all entities for that day).
  • Right column = entity total (sum across all 7 days for that entity).
  • Bottom-right = weekly total + billable subtotal.

A separate summary card to the right shows:

  • Total hours
  • Billable hours
  • Status (Draft / Submitted / Approved / Rejected)
  • Submit button (only visible when status is draft and total hours > 0)

Adding entries from the grid

You don't have to use the timer. You can build your week by clicking cells and typing hours directly.

  1. Click any empty cell.
  2. Type the hours (decimal: 2.5 or HH:MM: 2:30).
  3. (Optional) Add a description by clicking the entity-row label.
  4. Tab away — the entry saves automatically as a draft.

To add a new entity row mid-week (e.g. you started working on a new task), click + Add row at the bottom of the entity list and pick the entity from the same picker the timer uses.

Switching weeks

Use the date arrows in the top-left of the grid, or pass ?week=YYYY-MM-DD in the URL (must be a Monday — or whatever your week_start_day is set to).

The week navigation lets you fix old timesheets that haven't been submitted yet.

Submitting

When you're happy with the week:

  1. Click Submit in the summary card.
  2. The whole week (every entry on this timesheet) transitions from draft to submitted in one operation.
  3. Your manager(s) — anyone with time:approve permission, or admins — get a notification in their inbox.

You can edit individual entries any time before submission. After you submit, entries become read-only until either approved (locks them) or rejected (which moves the timesheet back to draft so you can fix it).

What "submitted" looks like

Once submitted:

  • A sticky banner appears at the top of the timesheet: "Submitted on Mon Apr 27. Awaiting approval."
  • Cell editing is disabled.
  • The Submit button is replaced with Status: Awaiting approval.

Lifecycle states

StateWhat it meansEditable?Counts toward billable?
DraftDefault for new entries / new timesheetYesNo
SubmittedYou clicked Submit; awaiting approvalNo (locked for the submitter)No (yet)
ApprovedAn approver accepted the timesheetNo (frozen for everyone)Yes
RejectedAn approver rejected with a reasonReturns to Draft after acknowledgement; rejection reason visibleNo

State transitions are strictly enforced: you can only submit a draft, only approve a submitted timesheet, only reject a submitted timesheet. Trying to re-submit an already-submitted timesheet produces an error.

What if my timesheet is rejected?

You'll see the rejection reason on the timesheet banner. After acknowledging:

  1. The timesheet returns to draft state.
  2. You can edit affected entries.
  3. Re-submit when ready.

The rejection reason is preserved as audit history — visible to both you and the approver.

Auto-submit (optional)

In Settings → General, you can pick an auto-submit day-of-week. On that day, a daily cron will:

  1. Find every draft timesheet for the previous week with at least one entry.
  2. Transition them all to submitted.
  3. Notify approvers.

Useful for teams that habitually forget to submit.

Where this data shows up downstream

  • Approval queue (/time/approvals) — your timesheet appears here as soon as you submit.
  • Reports (/time/reports) — utilization, billable %, and project actuals all come from approved timesheets.
  • Project budgets — a project's actual hours are summed from approved entries scoped to that project.
  • Invoice bridge — only approved && billable && not yet invoiced entries are eligible for the invoice "Pull from time" dialog.

Next steps

  • Approvals — how managers process the submitted queue
  • Reports — what your data tells you