How to count hours in Google Calendar by client
Google Calendar shows when you work, not how much. There is no total per client, per project or per colour in a personal Google account. Counting hours takes two things: a consistent way to say which client each meeting belongs to, and a place where the durations are added up.
Step 1: tag each meeting with its client
There are four common conventions. Pick the one you will actually keep up.
| Convention | Good for | Watch out for |
|---|---|---|
| A colour per client | Few clients, visual planning. Set it with right-click on an event. | Google offers 11 event colours; past 11 clients, colours run out. |
| A calendar per client | Many clients, or sharing a client's calendar with them. | More calendars to tick and keep visible. |
| A word in the title, like "Acme: weekly call" | Any number of clients, works on the phone. | One typo and the meeting goes uncounted. |
| The guest's email domain, like anyone at acme.com | Client meetings with invitations: no tagging at all. | Internal work without guests needs another tag. |
Mixing is fine as long as the rules are clear: for example, colour first, then the guest domain for meetings you forgot to colour.
Step 2: add up the durations
Inside Google Calendar (work accounts only)
With some Google Workspace business, enterprise and education editions, the Time insights panel shows how your time splits, including by colour. It is not available in personal Google accounts, it shows charts rather than a list you can invoice from, and it has no rates or amounts.
In Google Sheets, for free
Get one line per event into a sheet first. The timesheet guide has a ten-line script that writes date, start, end, hours, title and colour number. Then:
- By colour:
=SUMIF(F:F, "10", D:D)adds the hours of colour 10. Google numbers event colours 1 Lavender, 2 Sage, 3 Grape, 4 Flamingo, 5 Banana, 6 Tangerine, 7 Peacock, 8 Graphite, 9 Blueberry, 10 Basil, 11 Tomato; an empty value means the calendar's own colour. - By word in the title:
=SUMIF(E:E, "Acme*", D:D)adds every event whose title starts with Acme. - All clients at once: select the table, then Insert, Pivot table, with Colour or a client column in rows and the sum of Hours in values.
To turn colours into client names, add a small two-column table (colour number, client) and a VLOOKUP next to each line.
Automatically, with Calendar Timesheet
Calendar Timesheet reads your calendars every hour and applies your rules in order: colour, calendar, title word, guest domain. Meetings that match no rule wait in a To sort list, where one click assigns them and can remember the choice for next time. Totals per client, amounts and a dashboard update on their own.
Make the count match reality
- Use what happened, not what was planned. Move or shorten the event after the meeting if it ran differently. A calendar is only as true as its last edit.
- Separate done from planned. Mid-month, hours already worked and hours still booked are different numbers. Both are useful: one for the invoice, one for the forecast.
- Skip what is not work. Declined invitations, all-day events and time marked free should not count.
- Count shared meetings once. A meeting copied into two of your calendars is still one hour.
Which approach fits you
| You have | Try |
|---|---|
| 3 clients, a few meetings a week | Colours and a monthly SUMIF on a script export |
| A work account and you only want to see the split | Time insights by colour |
| Clients billed by the hour every month | An automatic sheet with rates and month-end statements |
Let the sheet keep count. Calendar Timesheet's free export gives you totals by colour and by calendar for any period; Pro adds clients, rates and autopilot.