How to track client time with your calendar (no new tools required)

Your calendar already tracks everything you work on. Here's a simple naming convention that turns it into a billable hours report — no extra tool needed.

8 min read Adrien Updated on 13/03/2026

You’ve probably tried a time tracker at some point.

You downloaded it. You used it for two weeks. Then life got busy, you forgot to start the timer before a call, and one missed entry turned into two. By week four, the app was sitting on your home screen unused, a silent reminder that you were once going to be more organized.

This isn’t a discipline problem. It’s a design problem.

Every time tracker asks you to do something extra: start a timer, stop a timer, categorize retroactively. It creates a parallel system that sits next to your real workflow. And anything that exists outside your real workflow eventually gets abandoned.

There’s a different approach. One that doesn’t add anything.

Why time tracking tools get abandoned

The average freelancer tries 3 to 4 time tracking tools before giving up entirely. The pattern is always the same.

Week 1: full compliance. Every hour tracked, every project categorized. Week 2: a few missed entries, manually reconstructed. Week 3: the manual reconstruction stops. Entries get estimated. Week 4: the tool is open but not really used.

The problem isn’t the tools. The problem is that tracking requires a deliberate action that happens at the worst possible moment — right before or after a working session, when your mind is either warming up or winding down.

The timer competes with your focus. It loses. The structural reasons why that’s true explain why switching apps never solves it.

Your calendar is already tracking your time

Here’s the thing: you’re probably already logging your time. You just don’t think of it that way.

Every meeting you schedule, you put in your calendar. Every working session you block off, you put in your calendar. Every client call, you put in your calendar. This is already happening, automatically, as part of how you plan your day.

Your calendar is a time log. An honest one. It reflects what you actually did, not what you remember doing at end of month.

The only problem: it’s not structured for billing. A meeting called “Call with Sarah” tells you nothing about which client it belongs to, whether it’s billable, or how to count it.

One naming convention fixes this.

The [Client] naming convention

Add brackets around your client name at the start of every work-related calendar event. That’s the full system.

[Acme] Strategy call — 45 minutes, billable to Acme. [Bolt][Website] Deep work — 2 hours, billable to Bolt, project Website. [Acme][F] Invoice review — 30 minutes, billable, already invoiced. [Bolt][O] Kickoff call — 1 hour, offered for free.

The tag in brackets is the only addition to what you already do. You’re already naming the event. You’re just adding context.

For the full reference — including [F] to mark already-invoiced hours, [O] for time offered for free, and how tags combine with project sub-tags — see the bracket naming convention guide.

At end of month, every event tagged [Acme] is time for Acme. Every event tagged [Bolt] is time for Bolt. Nothing needs to be reconstructed. The calendar is your timesheet — and end-of-month invoicing becomes a 15-minute task.

How to read your calendar data

Once your events are tagged, you have two options.

Manual (zero tools): Search your calendar for [Acme]. Count the events. Sum the durations. Done. It takes 10 minutes per client.

Automated: Timescanner reads your calendar and does this automatically. It groups all tagged events by client and project, sums the hours, applies your hourly rates, and generates a billing report. You open it once a month. The data is already there.

Either approach works. The naming convention is the system. How you read it is your choice.

What this looks like in practice

Monday morning. You have a 10am call with a client.

Before: you add Strategy call with Marie to your calendar. After: you add [Acme] Strategy call with Marie.

That’s the entire change. Two characters and a bracket. Five seconds.

During the day, you block off two hours for focused work on a proposal.

Before: Deep work — proposal After: [Acme][Proposal] Deep work

By the end of the week, your calendar already contains a complete, structured log of every hour you spent on every client. No timer started. No retroactive entry. No memory exercise.

The naming convention as a habit signal

One useful side effect: the act of tagging an event makes you more deliberate about what you’re working on.

When you type [Acme] before a working session, you’re making a micro-commitment. This hour belongs to Acme. It’s not a background task. It’s billable.

Freelancers who use this convention consistently report fewer “I forgot about that hour” moments. Not because they changed their work habits, but because the calendar becomes a decision record, not just a schedule.

The best tracking system is the one you already use

Every hour you spend setting up and maintaining a separate time tracking system is an hour you’re not spending on client work.

Your calendar is already open. It’s already synced across your devices. You’re already adding events to it every day.

The bracket convention takes that existing behavior and turns it into something useful. Timescanner reads the result and turns it into invoices. Pairing this with a weekly review makes the whole system close to automatic — the calendar does the tracking, the review surfaces anything that slipped.

No new tool to open. No new habit to build. Just a slightly better way of doing something you already do.

When you forget to tag an event

It happens. A call comes in unexpected. You block off time for focused work and forget to add the client prefix.

The fix depends on when you catch it.

Same day: edit the event title. Takes five seconds. Your calendar updates in real time and Timescanner reads the corrected version next time you generate a report.

End of week: scan the week’s events quickly. Anything untagged that looks like client work, update the title. Most freelancers who do a weekly review find fewer than three or four untagged events per week once the naming habit is established.

End of month: for anything you’ve missed, use contextual reconstruction. Your email and Slack threads from that week will confirm what the work was and who it was for. It’s not retroactive time tracking — it’s confirmation of what you know happened. The difference matters: reconstruction from memory is unreliable, confirmation of known events is accurate.

The goal isn’t perfect retroactive coverage. It’s a system that gets progressively more accurate as the habit builds. After two months, most freelancers are at 90%+ tag coverage without trying.

Connecting your calendar to Timescanner

Every major calendar service exposes an iCal URL — a private read-only link that gives external apps access to your event data. Timescanner uses this URL to read your tagged events and generate billing reports.

The URL is format: https://calendar.google.com/calendar/ical/... for Google Calendar, similar structures for Outlook, iCloud, Proton, and others.

To get it:

  • Google Calendar: Settings → click your calendar name → scroll to “Secret address in iCal format” → copy
  • Outlook.com: Settings → Calendar → Shared calendars → Publish calendar → copy ICS link
  • iCloud: Calendar.app → right-click calendar → Share Calendar → enable public calendar → copy link
  • Any other iCal calendar: look for “export”, “subscribe”, or “iCal URL” in the settings

Paste the URL into Timescanner once. All reports after that pull from the live feed. If you change your calendar events, the next report reflects the update automatically.

This is also how Timescanner handles privacy: it reads your event titles and times, nothing else. No access to event descriptions, attachments, invitees, or your calendar account itself.

What the billing report shows

Once your events are tagged and your calendar is connected, the Timescanner report for any given month shows:

  • Total hours per client
  • Hours broken down by project (if you use sub-tags like [Acme][Website])
  • Hours marked [F] — already invoiced, so you don’t double-bill
  • Hours marked [O] — offered for free, visible but excluded from billing totals
  • Total unbilled hours remaining per client

The invoice amount for each client is calculated from the hours multiplied by the hourly rate you set in Timescanner. You enter the rate once per client; it applies to every report automatically.

The end-of-month process then becomes: open report, verify the hours look right, copy the totals to your invoice. For most freelancers this takes under 20 minutes for a full month across all clients.


Timescanner works with any iCal-compatible calendar — Google Calendar, Outlook, iCloud, Proton Calendar, Fastmail, Infomaniak, and more.

Timescanner

Your calendar already knows how much you worked.

No timers. No new habits. Timescanner reads your calendar — Google Calendar, Outlook, iCloud, and more — and generates your billing reports automatically.

Start free trial — 30 days, no credit card