Calendar Timesheet

How to turn Google Calendar into a timesheet in Google Sheets

If you bill clients by the hour, your calendar probably already has most of the information you need: who you met, when, and for how long. The hard part is getting it out of Google Calendar and into a spreadsheet where you can total hours per client. Here are three ways to do it, from free and manual to fully automatic.

Method 1: Export your calendar (free, manual)

  1. In Google Calendar, open Settings → Import & export → Export. You get a .zip with one .ics file per calendar.
  2. The .ics format isn't a spreadsheet, so convert it with any "ICS to CSV" converter, then open the CSV in Google Sheets.
  3. Add a column for duration: =(END-START)*24 gives hours.
  4. Add a "Client" column and fill it in by hand, then build a pivot table: Rows = Client, Values = SUM of hours.

Good for: a one-off report. Downsides: it exports your whole calendar history, time zones can shift, and you redo every step each month.

Method 2: A small Apps Script (free, for the technical)

Open a Google Sheet, choose Extensions → Apps Script, paste this, and run exportEvents:

function exportEvents() {
  var start = new Date('2026-09-01'), end = new Date('2026-10-01');
  var events = CalendarApp.getDefaultCalendar().getEvents(start, end);
  var rows = [['Date', 'Title', 'Hours']];
  events.forEach(function (e) {
    if (e.isAllDayEvent()) return;
    rows.push([e.getStartTime(), e.getTitle(),
      (e.getEndTime() - e.getStartTime()) / 36e5]);
  });
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear();
  sheet.getRange(1, 1, rows.length, 3).setValues(rows);
}

You'll still need to map events to clients (for example with =IF(REGEXMATCH(B2,"(?i)acme"),"Acme","")) and build a pivot table for totals. Rounding to 15-minute increments needs =CEILING(C2, 0.25).

Good for: people comfortable editing code. Downsides: you maintain it yourself, and declined meetings, all-day events and rates need extra logic.

Method 3: Calendar Timesheet add-on (one click)

Calendar Timesheet does all of the above inside Google Sheets:

It's free for up to 30 events per report; Pro ($4/month) removes the limit. Your calendar data never leaves your Google account.

Try it free

Tips for accurate billable hours