Case studies / Timesheets
Timesheets: the easiest, most accurate timesheets I've kept
Timesheets get filled in late and from memory, and memory is generous. Now a record of my day becomes a draft timesheet, sorted by client and project, every afternoon. I check it, press Publish, and every project's budget updates itself.
- Client, from the evidence: the repo, the site, the people
- Project, from words and names listed for each one
- Admin or delivery, set automatically
- Two-minute admin moments rolled into one entry
- Evidence and confidence written beside every block
- Lunch, the school run and games left out
- You Review Click entries across, add what the screen missed
- Out Publish Written to Google Calendar, my source of truth
- Out Budgets Hours and cost against every project
- What
- A daily routine that drafts my timesheet from what I actually worked on
- Built with
- Ambient Context, a scheduled task in Claude, a review page, Google Calendar
- My part
- One minute a day, mostly clicking drafted entries across
- Status
- Running every weekday since October 2026
The problem
Timesheets get filled in on Friday afternoon, from memory and a calendar that only shows the meetings. Memory is generous: the morning “on the client project” included an hour of someone else’s email and twenty minutes of admin. For a consultancy that costs twice. The hours are what clients pay for, and they’re how you find out a fixed-price project is quietly losing money.
The magic: a record of the day
Ambient Context is a free, open-source Mac app I came across on Hacker News. While it’s on, it writes down the text of whichever window you’re working in, every few seconds, into a plain-text file for the day on your own disk. Not a screen recording: no screenshots, no video, just text.
It’s built to give AI assistants the context of your day. A timesheet turns out to be one of the best things to build from it.
The smarts: the prompt
At 4pm on weekdays, a scheduled task in Claude reads the day’s record beside my calendar and drafts the timesheet. The prompt makes the calls a person would: which client each block of work was for, which of their projects, whether it was admin or delivery. It rolls a dozen two-minute emails into one admin entry, writes the evidence beside each block, and leaves out lunch and the school run. My own products count as work, so they’re in too.
Then my phone buzzes with a link to the review page.
The check: nothing counts until I say so
The draft is not my timesheet. It’s the evidence I fill my timesheet in from.
A screen can’t see the phone call, the chat with a colleague, or the morning spent thinking in a coffee shop with the laptop shut. It can’t tell I left a client’s site open while I answered someone else. So the routine never writes anything on its own. Most days I click the drafted entries across, nudge a time, and press Publish. When I’ve been away from the screen, I add the entry myself, and the record tells me roughly when.
Why it matters more with AI
Working with AI, I rarely spend a long block on one thing. I set an agent going on one strand of a project, review another’s work, answer an email while a third runs, and check back on the first. In an hour I might cover four strands of the same project, or two clients.
Memory can’t keep up with that, and “the morning on project X” stops meaning much. The record can: it shows which tasks I was actually moving between, and when. So I don’t bill the wrong client for an hour, and I don’t lose track of the strands I’ve been pushing forward.
The result
- accurate, checked against the record
- 95%
- Was: about 70%
- a month on timesheets
- 20 min
- Was: 1¾ hours
- entries written without my say-so
- 0
Published entries go to Google Calendar, my source of truth. If yours is Harvest, Toggl, Xero or a spreadsheet, the publish step can write there instead, as long as Claude can reach it through an MCP server, an API or an import file. A second job then totals every project’s hours and cost against its budget, so I know a project is drifting before it becomes a problem.
Caveats
- Ambient Context is young. It’s an early open-source project; treat it that way.
- The app keeps things private. No account, no server, no telemetry, and it never calls an AI model itself. It skips password fields and password managers, and scrubs anything shaped like a password, key or card number. Those are heuristics, so treat the folder as sensitive.
- The drafting step does use an AI model. Whichever assistant reads the record (Claude, for me) sends the day’s text to its provider, under your account. Make that choice knowingly.
For yourself, not your staff
This works because it’s my record, of my day, and I decide what goes in. A business recording every employee’s screen is surveillance, and I wouldn’t build it. If your team wants this, the record stays on each person’s computer and each person chooses what goes in their timesheet.
Got paperwork that follows a pattern?
An hour's chat costs nothing. We'll find where the quick wins are in your business.
Talk to us →