AI Adoption GuideGeneralSelect
Time tracking
AI time tracking reconstructs work from apps, websites, files, calendars, and summaries so people can understand where time goes without running manual timers all day.
By Don, DoneThat’s AI coach · updated
Reconstruct from signals, not from a running timer
AI time tracking rebuilds a draft of where a day went from the traces work already leaves: apps, websites, files, calendars, and short written summaries. It is not a replacement for a timer you start and stop, and it is not a submitted timesheet. The quality bar is a log in which every filled line cites the signal it came from. If there is no signal, that stretch stays empty. You still review the draft and submit the timesheet yourself.
A running timer asks you to remember to start it, name the client, and stop it when you switch. Most knowledge work does not happen in one named block. Reconstruction starts from evidence that already exists and asks a narrower question: what can be supported, and what cannot.
Tools in this class differ in what they see. RescueTime and Timing sit closer to local or browser activity. Clockify is a timesheet and timer surface that may also ingest imports. Microsoft Copilot can sit next to documents, mail, and meetings in a Microsoft tenant. Calendar tools hold booked time, not proof that the meeting happened as scheduled. Treat them as sources of raw signal, not as authorities on billable time. None of them should invent hours to close a gap.
Collect only the signals you are allowed to use
Before any model reconstructs a day, decide what may be captured. Activity logs can include application names, window titles, file paths, URLs, calendar titles, and attendee lists. Those fields often contain client names, matter numbers, or personal appointments. Capture policy comes first. If your organization forbids recording browsing, local file names, or meeting titles outside a project, do not feed those fields into reconstruction. Ignoring policy to get a complete log is a failure mode, not a completeness win.
Collect in layers.
Calendar: accepted events, duration, title, and whether you marked yourself busy. A calendar is a plan, not attendance.
Files: create, open, and save times on documents you are allowed to inspect. A last-saved timestamp is a cite, not a full duration.
Apps and sites: in-scope application focus or allowlisted sites. Out-of-scope personal apps stay out.
Written summaries: a few sentences you already wrote, standup notes, or a meeting recap. Pair this with meeting transcription only when a transcript exists and policy allows it. A transcript can support that you were in that session. It cannot, by itself, prove how you allocated the hour after.
Keep the collection window to the day or week you are filing. Pulling months of activity in case it helps raises privacy risk and does not improve a single timesheet.
If you work inside AI Projects, keep client work in the project that already has the right retention and sharing rules. Reconstruction should read from that boundary, not from a personal dump of everything on the machine.
Reconstruct each block with a cite
Work one day at a time. For each candidate block, write three fields: clock range, label (client, matter, or internal code), and cite. The cite names the signal: calendar event, file path or document title, application, site, or summary excerpt. If two signals disagree, keep both cites and do not average them into a round number.
Illustrative example, not a measured case. On Tuesday you have a 90-minute calendar event titled Northwind workshop, a slide deck whose last save is 14:40, and allowlisted browser time on the client wiki around midday. A defensible reconstruction might draft: 09:30-11:00 Northwind workshop (calendar: Northwind workshop); late morning wiki reading (browser: client wiki, midday); afternoon deck edits (file: workshop slides, last saved 14:40). Between 11:00 and the wiki burst, and after 14:40 until close of business, if nothing in-scope fired, those ranges stay blank. Do not fill them with Northwind wrap-up or admin to make the day add to eight hours.
When you use AI assistants to draft the log, constrain the prompt: only use the attached signals; quote the cite on every line; never infer duration beyond what the signal supports; never round up. A file open at 14:10 and a save at 14:40 supports work in that window. It does not support two hours of deck work unless other signals cover the rest.
Clockify-style timers remain useful when you did run a timer. Import that as a cite (timer: Northwind, 09:32-10:18), not as something the model should overwrite with calendar math.
Leave blanks empty and submit the timesheet yourself
Empty is a valid state. A blank range means no in-scope signal, not idle, not non-billable, and not bill the retainer. Guessing to avoid a blank is how invented billable hours appear. If you remember working and the log is empty, add a human note and a conservative duration you can defend, or leave it blank and file the memory as a comment for your reviewer. Do not ask the model to make it complete.
Reconstruction is a draft. Treating it as already billed is the second failure mode. Nothing in the log has been accepted by finance, a partner, or a client until you submit through the normal timesheet path. Calendar duration is not invoice duration. Copilot summaries of a meeting are not a billed hour. Activity in RescueTime or Timing is not a charge unless you map it, check policy, and file it.
Submit in your existing system. Copy cited lines you accept. Drop lines you cannot stand behind. Keep the cites in an internal note if your timesheet UI has no citation field. The person who did the work is the one who submits.
If filing repeats every Friday, workflow automation can gather the signal pack (calendar export, file list, allowlisted activity) into one folder. Do not automate the submit step. Automation that posts hours without a human gate turns reconstruction into silent billing.
Watch for invented hours, premature billing, and capture policy
Three checks before you trust a draft.
Invented hours: any line with no cite, a cite that does not cover the duration, or a round eight-hour day with no gaps when your signals were sparse. Delete or shorten those lines.
Already billed: any workflow that sends reconstructed hours to invoicing, utilization dashboards, or client portals without your submit action. Reconstruction ends at the draft.
Capture policy: any signal outside what you may collect. Window titles, personal calendar, and non-work URLs are common leaks. If policy is unclear, collect less: calendar you own plus files in the client folder, and stop.
Vendors will not resolve this for you. RescueTime, Timing, Clockify, Microsoft Copilot, and calendar tools each see a slice. Combining slices without policy review creates a surveillance log. Combining them with cites and blanks creates a timesheet you can defend.
The usable output is narrow: a reconstructed log, each filled line tied to a source, blanks left blank, submitted by you.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first