Hours per project from Google Calendar

In short: No Google help page we found describes a total of hours per project in Google Calendar. Time Insights splits meeting time by type, like focus time, 1:1 meetings and meetings with 3 or more guests, not by project, and Google describes it for work or school accounts only. Export the calendar, drop it below, and add each project to the keyword table. You get hours per project per day and in total.

Hours per project from Google Calendar

.ics, .zip or Outlook CSV

An .ics file from Google Calendar, Apple Calendar or Outlook, Google's .zip of all calendars, or Outlook's calendar CSV. Several files at once are fine.

Your calendar stays on this device

The file is read and added up by this page, inside your browser. Nothing from it is uploaded. Your keyword table and rates are saved only in this browser.

No calendar export handy? or download the sample to look at it first.

The freelancer, clients and meetings in the sample are invented. It is read on this device, like your own file.

Loading...

How to do it

  1. Open Google Calendar on a computer. Click Settings, then Settings, then Import & export, then Export. A .zip downloads.
  2. Drop the .zip below and pick the dates.
  3. In the keyword table, add a row for each project: the keyword is a word from its event titles, like "Apollo", and the client name is the project name.
  4. If an event could match two projects, move the row you want first up. The first match wins.
  5. Read the hours per project in the grid, or download the CSV.

What it does

  • Keywords match whole words in titles, categories, locations and guest names.
  • A short project word in every event title, like "Apollo: design review", keeps matching simple.
  • Events with no project word stay under "(no client)", so nothing is hidden.
  • The Toggl Track, Harvest and Clockify files put the name in both Client and Project.

Sources

Export from Google Calendar

  1. Open Google Calendar on a computer (the phone app cannot export).
  2. For every calendar at once: click the gear icon, then Settings, then Import & export, then Export. A .zip downloads. Drop the .zip here as it is.
  3. For one calendar: under My calendars, point at the calendar, click the three dots, then Settings and sharing, then Export calendar. An .ics file downloads.

Work and school accounts can have export turned off by the admin. You need the "Make changes and manage sharing" permission on a calendar to export it.

Export steps for the other apps

Export from Outlook (.ics)

  1. In classic Outlook for Windows, open the calendar, then File, then Save Calendar.
  2. Click More Options. Set Date Range to the period you bill for, and Detail to Full details. "Availability only" leaves out the titles, so no client can be matched.
  3. Save. Drop the .ics file here.

The new Outlook and Outlook on the web do not always offer this. If yours does not, use the CSV export from classic Outlook, or publish the calendar and download its .ics link.

Export from Outlook (CSV)

  1. In classic Outlook for Windows: File, Open & Export, Import/Export.
  2. Choose Export to a file, then Comma Separated Values, then your Calendar folder.
  3. Outlook asks for a date range. Pick the period you bill for. Save, then drop the .csv here.

The CSV has no time zone, no declined status and no repeat rules. Each row is one meeting as it sat in your calendar. If repeating meetings look missing, export as .ics instead.

Export from Apple Calendar

  1. Open Calendar on your Mac. If the calendar list is hidden, choose View, then Show Calendar List.
  2. Click the calendar name in the list.
  3. Choose File, then Export, then Export. Save the .ics file and drop it here.

Apple exports one calendar at a time. The "Calendar Archive" (.icbu) option is a backup format this tool does not read. Drop several .ics files at once if your work sits in more than one calendar.

Limits

  • An event counts on the day it starts, in the time zone you pick. An event that runs past midnight is not split across two days.
  • All-day events are left out unless you set hours per all-day event. Then an event over several days gives one row per day, for the days inside your date range.
  • Declined meetings are left out only when you enter your own email address, and only for .ics files. The Outlook CSV has no declined, tentative or free status, so those tick boxes do nothing for it.
  • Client keywords match whole words, so "art" does not match "Party". A keyword with @ or a dot, like @acme.com, matches inside email addresses.
  • The "events shown as free" box leaves out events marked TRANSP:TRANSPARENT in the file. That this is what Google writes for events set to Free is not confirmed against a real Google export.
  • Repeat rules by the hour or minute, by week number, or by hour of the day are not expanded. Those series are listed as not counted. Calendar apps rarely write them.
  • A repeat that lands on a time skipped by a clock change (for example 2:30 on the night clocks go forward) is skipped, as the iCalendar standard says. Some calendar apps show it an hour later instead. The page names those dates.
  • "This and all later" changes written as RANGE=THISANDFUTURE are applied to the one meeting only, with a warning.
  • The Outlook CSV must have English column names. A CSV from a German, French or other localized Outlook is refused.
  • The Outlook CSV has no time zone. Its times are read as the wall-clock times of the computer that exported them.
  • Not tested against real exports of timed, repeating and declined events from Google, Apple or Outlook. The test files are built from the iCalendar standard and the vendors' help pages. Check the first timesheet against your calendar.
  • The Toggl Track, Harvest and Clockify import files follow those vendors' help pages and were not tested by importing into a real account.

Questions

Does Time Insights show hours per project?
Google's help page lists its time breakdown as focus time, 1:1 meetings, meetings with 3 or more guests, meetings you have not answered, and remaining time. It does not describe a split by project. It is described for work or school accounts, on a computer.
Can one event count for two projects?
No. The first matching row in the keyword table wins. Move a row up to give it priority.
Can I group projects under a client?
Not on this page. Each event gets one name. Give each project its own row, then add the project totals per client in a spreadsheet.
Can I pick the project by event colour?
No. This page does not read colours. Put a project word in the title instead.
Is my calendar uploaded anywhere?
No. The file is read by this page inside your browser. Nothing from it is sent to a server. You can disconnect from the internet after the page loads and it still works.
How is the client picked for each event?
From a keyword table you can edit. The first row whose keyword appears as a whole word in the event title, categories, location, or a guest's name sets the client; a keyword with @ or a dot, like @acme.com, matches inside email addresses. Suggestions come from guest email domains, categories and titles like "Acme: review". Your own domain is never suggested, and the table is filled in only once your email address is known. It is saved in your browser.

Related