Calendar Timesheet

Comment transformer Google Agenda en feuille de temps

Mis à jour le 19 octobre 2026. Environ 7 minutes de lecture.

Si vous inscrivez déjà votre travail client dans Google Agenda, vous avez l’essentiel d’une feuille de temps. Ce qui vous manque, c’est une liste avec les dates et les durées, et des totaux par client. Google Agenda n’en produit pas : son export est un fichier d’agenda, pas un tableau. Voici trois façons d’y arriver, de la méthode gratuite et manuelle à la méthode entièrement automatique, et les détails qui faussent les totaux sans que l’on s’en aperçoive.

Méthode 1 : à la main, dans un tableur

Ouvrez Google Agenda en affichage Semaine, gardez à côté une feuille de calcul Google Sheets vide, et tapez une ligne par rendez-vous : date, début, fin, client. Ajoutez une colonne avec =(C2-B2)*24 pour obtenir les heures, et un total en bas.

Cela ne coûte rien et convient pour quelques rendez-vous par semaine. Au-delà, cela prend du temps chaque semaine, et les erreurs de saisie sont invisibles : personne ne revérifie un 14:30 tapé à la main en le comparant à l’agenda.

Méthode 2 : un court script dans Google Sheets

Google Sheets peut lire votre agenda avec Apps Script, le langage de script intégré de Google. Dans une nouvelle feuille de calcul, ouvrez Extensions, puis Apps Script, collez ce code, ajustez les deux dates et exécutez listMonth. Google vous demandera d’autoriser votre propre 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);
}

Dans Apps Script, les mois se comptent à partir de 0 : new Date(2026, 9, 1) correspond donc au 1er octobre. Vous obtenez une ligne par événement, avec sa durée et son numéro de couleur. À partir de là, un tableau croisé dynamique ou SOMME.SI donne les totaux (le guide Compter ses heures Google Agenda : client, couleur, semaine montre les formules).

C’est une bonne option gratuite si un peu de code ne vous fait pas peur. Le script ne lit que votre agenda principal, et il hérite de tous les pièges listés plus bas, sauf si vous les traitez vous-même.

Méthode 3 : automatiquement, avec un module complémentaire

Un module complémentaire fait la même lecture pour vous, à intervalles réguliers. Calendar Timesheet, que nous développons, lit les agendas que vous choisissez toutes les heures, range chaque rendez-vous sous un client d’après sa couleur, son agenda, un mot du titre ou le domaine de l’adresse e-mail des invités, et tient à jour une feuille Mois en cours. Le 1er du mois, il clôture le mois précédent en un relevé par client et vous envoie un récapitulatif par e-mail. L’export de n’importe quelle période est gratuit ; les clients, les taux et le pilote automatique font partie de Pro, avec un essai qui dure jusqu’à votre première fin de mois.

D’autres modules complémentaires exportent les événements bruts dans une feuille ; cela convient à ceux qui veulent construire leur propre rapport. Les pièges ci-dessous font toute la différence entre un export brut et une feuille de temps sur laquelle vous pouvez facturer.

Les pièges qui faussent les totaux

Les rendez-vous à cheval sur une limite

Un atelier de 22 h à 1 h dans la nuit du 31 octobre appartient à deux mois. Le compter en entier en octobre surfacture octobre et laisse novembre incomplet. Seule la partie comprise dans la période doit compter.

Les invitations refusées ou sans réponse

Les scripts d’agenda renvoient aussi les événements que vous avez refusés. Si quelqu’un vous invite à une réunion que vous avez déclinée, elle se retrouve quand même dans un export naïf. Filtrez sur votre propre réponse.

Les événements d’une journée entière et le temps « Disponible »

Les congés, les jours de déplacement et les rappels sont souvent des événements d’une journée entière ou marqués « Disponible ». Ce n’est pas du temps de travail, et un événement d’une journée entière lu comme 24 heures ruine un total.

Le même rendez-vous dans deux agendas

Si un client vous invite et que vous copiez aussi le rendez-vous dans votre agenda professionnel, un export des deux agendas le compte deux fois. Les événements partagent un identifiant (iCalUID) qui permet de n’en garder qu’un.

Les rendez-vous périodiques avec des exceptions

Un appel hebdomadaire déplacé une semaine et annulé une autre doit compter tel qu’il a eu lieu, pas tel que la série le prévoit. Lisez les occurrences développées, pas la série.

Les fuseaux horaires

Si votre feuille de calcul et un agenda utilisent des fuseaux horaires différents, les heures de début se décalent. Utilisez un seul fuseau horaire pour la feuille de temps, en général celui de la feuille de calcul.

Une feuille de temps fiable : la liste de contrôle

  1. Choisissez une seule façon d’associer les clients (couleur, agenda, mot du titre ou domaine des invités) et tenez-vous-y.
  2. Ne comptez que la partie de chaque rendez-vous comprise dans la période.
  3. Écartez les invitations refusées, les événements d’une journée entière et le temps marqué « Disponible ».
  4. Comptez une seule fois un rendez-vous présent dans deux agendas.
  5. Figez chaque mois une fois facturé, pour que les modifications faites plus tard dans l’agenda ne changent pas ce que vous avez envoyé.

Vous voulez que ce soit fait pour vous toutes les heures ? Calendar Timesheet traite chaque point de cette liste, dans votre propre feuille de calcul Google Sheets, sans compte à créer.

Installer gratuitement