How to track billable hours with Google Calendar
Most freelancers already live in their calendar: client calls, work sessions, deadlines. With a few habits, that calendar becomes an accurate record of billable time, with no timer apps and no end-of-month guessing. Here's a setup that takes ten minutes.
1. Put all billable work on the calendar
Meetings are there already. The missing piece is focused work. Block it the way you'd book a meeting: "Acme – homepage copy, 9:00–11:30". If plans change, drag the block so it matches what actually happened; that's the whole "timer".
- Create blocks at the start of the day, then adjust them at the end of the day.
- Keep non-billable time (admin, sales calls) in a separate calendar, or just leave the client name out of those events.
2. Use a consistent naming rule
Reports are only as good as your event titles. Pick one rule and stick to it:
- Prefix style:
[Acme] Weekly sync,[Northwind] Data cleanup. The client is always the first thing in the title. - Keyword style: always include a unique word per client, e.g. "acme" or "northwind", anywhere in the title or description.
Colors are nice for scanning your week, but titles are what reporting tools can read reliably.
3. Decide your rounding policy upfront
Common options are 6-minute (0.1 h) increments, used by many law and accounting firms, or 15-minute increments. Put it in your contract ("time is billed in 15-minute increments, rounded up") so invoices never surprise a client. In Google Sheets:
- Round up to 15 minutes:
=CEILING(A2, 0.25) - Round to the nearest 6 minutes:
=MROUND(A2, 0.1)
4. Run a monthly (or weekly) billing routine
- Pull the month's events into Google Sheets. See 4 ways to export Google Calendar to Sheets.
- Assign each event to a client using your naming rule, apply your rounding, and multiply by the client's rate.
- Total hours and amount per client with a pivot table or
SUMIFS. - Skim the list for anything that shouldn't be billed (cancelled meetings, internal calls), then copy the totals into your invoice.
5. Automate the boring part
Calendar Timesheet is a Google Sheets add-on that does step 4 in one click. You write rules like acme => Acme Corp | 120 once; each month you pick the date range and click Generate timesheet. It rounds to 6, 15 or 30 minutes, skips all-day events and meetings you declined, and produces a Timesheet tab plus a Client Summary with hours and amount per client.
Your calendar data stays in your Google account. Free for up to 30 events per report; Pro is $4/month. Try it free →
Common mistakes
- Forgetting to update blocks. A 2-hour block that really took 3 hours under-bills you. Adjust at the end of each day.
- Billing declined or cancelled meetings. Filter out events you declined; delete cancelled ones.
- Mixed time zones. If you travel, check that your calendar and spreadsheet use the same time zone before running reports.