Calendar Timesheet

Como transformar o Google Agenda em uma planilha de horas

Atualizado em 19 de outubro de 2026. Leitura de cerca de 7 minutos.

Se você já coloca o trabalho dos seus clientes no Google Agenda, já tem a maior parte de uma planilha de horas. O que falta é uma lista com datas e durações, e os totais por cliente. O Google Agenda não gera essa lista: a exportação dele é um arquivo de agenda, não uma tabela. Veja três jeitos de chegar lá, do gratuito e manual ao totalmente automático, e os detalhes que, sem ninguém perceber, deixam os totais errados.

Método 1: à mão, numa planilha

Abra o Google Agenda na visualização de semana, abra ao lado uma planilha vazia no Planilhas Google e digite uma linha por reunião: data, início, fim, cliente. Adicione uma coluna com =(C2-B2)*24 para obter as horas e um total embaixo.

Não custa nada e funciona para algumas reuniões por semana. Acima disso, toma tempo toda semana, e os erros de digitação ficam invisíveis: ninguém confere de novo um 14:30 digitado com o que está na agenda.

Método 2: um pequeno script no Planilhas Google

O Planilhas Google consegue ler a sua agenda com o Apps Script, a linguagem de script integrada do Google. Numa planilha nova, abra Extensões e depois Apps Script, cole o código abaixo, ajuste as duas datas e execute listMonth. O Google vai pedir que você autorize o seu próprio script.

function listMonth() {
  var cal = CalendarApp.getDefaultCalendar();
  var start = new Date(2026, 9, 1), end = new Date(2026, 10, 1); // October 2026
  var rows = [['Date', 'Start', 'End', 'Hours', 'Title', 'Colour']];
  cal.getEvents(start, end).forEach(function (e) {
    if (e.isAllDayEvent()) return;
    var hours = (e.getEndTime() - e.getStartTime()) / 3600000;
    rows.push([e.getStartTime(), e.getStartTime(), e.getEndTime(), hours, e.getTitle(), e.getColor()]);
  });
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear();
  sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
}

No Apps Script, os meses são contados a partir de 0, então new Date(2026, 9, 1) é 1º de outubro. Você obtém uma linha por evento, com a duração e o número da cor. A partir daí, uma tabela dinâmica ou SOMASE dá os totais (o guia Contar horas no Google Agenda por cliente, cor ou semana mostra as fórmulas).

É uma boa opção gratuita se você se sente à vontade com um pouco de código. Ela lê só a sua agenda principal e herda todas as armadilhas listadas abaixo, a menos que você mesmo trate de cada uma.

Método 3: automaticamente, com um complemento

Um complemento faz a mesma leitura por você, em horários programados. O Calendar Timesheet, que nós fazemos, lê a cada hora as agendas que você escolhe, coloca cada reunião sob um cliente pela cor, pela agenda, por uma palavra no título ou pelo domínio do e-mail do convidado e mantém atualizada uma página Este mês. No dia 1º, ele fecha o mês anterior em um demonstrativo por cliente e envia um resumo para você por e-mail. A exportação de qualquer período é grátis; clientes, valores por hora e piloto automático fazem parte do Pro, com um teste que dura até o seu primeiro fim de mês.

Outros complementos exportam os eventos brutos para uma planilha; isso serve para quem quer montar o próprio relatório. As armadilhas abaixo são o que separa uma exportação bruta de uma planilha de horas que você pode faturar.

As armadilhas que deixam os totais errados

Reuniões que atravessam um limite

Um workshop das 22:00 à 1:00 em 31 de outubro pertence a dois meses. Contá-lo inteiro em outubro fatura outubro a mais e deixa novembro a menos. Só a parte dentro do período deve contar.

Convites recusados e sem resposta

Os scripts de agenda retornam os eventos que você recusou. Se alguém convida você para uma reunião que você recusou, ela ainda entra numa exportação ingênua. Filtre pela sua própria resposta.

Eventos de dia inteiro e tempo "disponível"

Feriados, dias de viagem e lembretes costumam ser eventos de dia inteiro ou marcados como "disponível". Não são tempo de trabalho, e um evento de dia inteiro lido como 24 horas arruína um total.

A mesma reunião em duas agendas

Se um cliente convida você e você também copia a reunião para a sua agenda de trabalho, uma exportação das duas agendas conta a reunião duas vezes. Os eventos compartilham um identificador (iCalUID) que você pode usar para manter só um.

Reuniões recorrentes com exceções

Uma ligação semanal movida numa semana e cancelada em outra deve contar como aconteceu, não como a série diz. Leia as ocorrências expandidas, não a série.

Fusos horários

Se a sua planilha e uma agenda usam fusos horários diferentes, os horários de início se deslocam. Use um único fuso horário para a planilha de horas, normalmente o da planilha.

Uma planilha de horas confiável: a lista de verificação

  1. Escolha um jeito de marcar os clientes (cor, agenda, palavra no título ou domínio do convidado) e mantenha-o.
  2. Conte só a parte de cada reunião que fica dentro do período.
  3. Deixe de fora convites recusados, eventos de dia inteiro e tempo marcado como disponível.
  4. Conte uma vez só uma reunião encontrada em duas agendas.
  5. Congele cada mês depois de faturado, para que edições posteriores na agenda não mudem o que você enviou.

Quer que isso seja feito por você a cada hora? O Calendar Timesheet cuida de cada item desta lista, na sua própria planilha do Google, sem criar conta.

Instalar grátis