What's in it
The CSV is one row per stretch of work, with these columns. Open it in Google Sheets, Excel or Numbers and add rows. No macros, nothing hidden.
| Column | What goes in it |
|---|---|
| Project | Which job |
| Client | Who pays for it |
| Description | One line a client would recognise |
| Task | The issue key or a short task name, such as KES-431 |
| Billable | Yes or No |
| Start Date | The day, as YYYY-MM-DD |
| Start Time | Clock time, 24-hour, such as 09:00:00 |
| End Date | Usually the same day; the next one if you worked past midnight |
| End Time | Clock time, 24-hour |
| Duration (h) | Hours and minutes, such as 02:30:00, or in a spreadsheet =End−Start |
| Billable Rate (your currency) | Your rate per hour for that project; leave it empty if you don't bill it |
The columns are the ones in Clockify's detailed export, in the same order, so the file also imports into Hourbrook as it is. There's no break column on purpose: if you take an unpaid break, end the row and start a new one after it.
The printable sheet is one week on one page, landscape: each day with lines for client and project, task, what you did, start, end, break, hours and billable, a total, and lines to sign. Fill it in by hand, or print it with the example rows to see how.
How to fill it in
Five minutes at the end of each day beats an hour on Friday trying to remember Tuesday.
- Add a row for each block of work, with start and end times, not just a number of hours: overlaps and gaps show up, and a client's question has a precise answer.
- Put the ticket key in Task when there is one. It's the fastest way to link an hour to the work.
- Write the description for the client, not for yourself. “Fixed CSV export dropping rows over 10k” beats “export stuff”.
- Mark non-billable work as such rather than leaving it out. It's how you learn your real billable share, the number behind your rate (the hourly rate calculator shows why).
- At the end of the week, total it, check it, and send it with the invoice.
Rounding, breaks and agent time: decide once
Three things cause most timesheet arguments. Decide them once and write them in your contract.
Rounding. Pick one rule and round in one direction. If you round to the quarter hour, round a whole sitting once rather than every small piece: four 5-minute bits rounded up separately become an hour, which is hard to defend. Say on the invoice that you round.
Breaks. A coffee between two pieces of the same work is part of the work; most clients don't expect you to stop the clock for it. A lunch hour isn't.
Agent time. If you use Claude Code or Codex, the time you spend directing and reviewing an agent on a client's work is working time, even when the keyboard is still. Time it runs while you're away is a pricing question, not hours, and two agents running at once never make two billable hours. More in how to bill clients for AI agent time.
Sending it to a client
- Print the week to PDF, or share the spreadsheet view-only.
- Include the dates, your name, the client, the total hours and, if you round, the rule.
- Keep descriptions specific. A client who can see what each hour was rarely asks.
When a spreadsheet stops being enough
A spreadsheet works until you forget to fill it in. If you find yourself rebuilding the week from memory, a tracker that notices what you worked on helps.
Hourbrook does that on a Mac: it notes the app, window title and web page in front every two seconds, keeps that on your Mac, and drafts entries from your own history. You pick what to log. It makes invoices from what you log and exports CSV for Toggl Track, Harvest, Clockify or a spreadsheet. And because this template uses Clockify's columns, Settings › Privacy › Import CSV brings your spreadsheet's rows in, with a preview first.