CIIFragments Studio est agréée CII : récupérez jusqu'à 20 % de vos dépenses en développement logicielEn savoir plus

Intégration API Google Calendar

Nous développons votre connecteur Google Calendar

Nous branchons l'API Google Calendar sur votre planning pour créer les événements, lire les disponibilités et récupérer les déplacements faits depuis le téléphone.

  • Équipe produit senior
  • sync d'agendas en production
  • du cadrage au monitoring
En bref

À quoi sert l'API Google Calendar et pourquoi la connecter à son application ?

L'API Google Calendar permet à votre application de lire et d'écrire dans les agendas Google de vos utilisateurs ou de votre organisation. On l'intègre pour créer automatiquement un événement à la confirmation d'un rendez-vous, afficher les disponibilités dans un planificateur, ou déclencher une action métier quand un événement est modifié ou annulé. Le résultat concret : le planning métier vit dans l'agenda que les équipes ouvrent déjà, et les modifications faites depuis le téléphone sont immédiatement reflétées dans le logiciel sans ressaisie.

Cas d'usage

Ce que nos clients construisent sur l'API Google Calendar

01

Planning d'interventions dans l'agenda

Chaque mission devient un événement chez le technicien, avec adresse, contact et lien Meet. Plus de copier-coller de visio, plus de « je n'ai pas vu le rendez-vous ».

02

Créneaux proposés sur le vrai libre/occupé

Freebusy interroge plusieurs agendas avant d'afficher un créneau. Vous proposez ce qui est libre, au lieu de découvrir le conflit après coup.

03

Capacité lue dans l'agenda, pas dans un tableur

outOfOffice, focusTime et workingLocation deviennent des données de planning. Un cabinet ou un centre de formation arrête de tenir les absences à la main.

04

Rendez-vous commercial rattaché à l'affaire

Votre identifiant voyage dans extendedProperties. Si le créneau est déplacé ou annulé dans Google, le CRM le sait sans table de correspondance qui dérive.

Pour vous

Ce que ça change dans votre planning

La technique au service d'un résultat mesurable : un seul agenda, des créneaux vrais, plus de double saisie.

Fini la double saisie

Le logiciel métier écrit dans Google, et relit ce que le collaborateur a bougé depuis son téléphone. Les deux calendriers arrêtent de se contredire.

Des créneaux que l'on peut tenir

Vous ne proposez plus un horaire déjà pris. Moins de reports, moins de no-show nés d'un conflit invisible.

Meet sans bricolage

Le lien de visio est créé avec le rendez-vous. Plus de conférence réutilisée qui expose une réunion à la mauvaise personne.

Le planning reste à jour sans saturer Google

On écoute les changements au lieu de rescanner toutes les minutes. Le connecteur tient, y compris en délégation Workspace.

Méthode

Comment nous livrons votre connecteur Google Calendar

01

Cadrage

Quels agendas, quel sens de sync, quels types d'événements, Meet ou pas, quel scope OAuth. On liste les récurrences et les fuseaux avant d'écrire une ligne.

02

Développement

syncToken par agenda, canaux push renouvelés avant échéance, quotaUser en délégation, clé métier en extendedProperties. Démonstration chaque semaine.

03

Recette

Déplacement mobile, 410 sur syncToken, canal expiré, récurrence à l'heure d'été, conferenceDataVersion oublié : chaque piège est rejoué avant la bascule.

04

Monitoring

Alerte sur 410, sur canal mort, sur 429. Journal des watches. Vous savez qu'un agenda est sourd avant le lundi matin des techniciens.

Ce que permet l'API

Ce que permet l'API Google Calendar

Événements et types métier
Création, lecture, patch. eventType (default, outOfOffice, focusTime, workingLocation, birthday) est immuable après insert. fromGmail n'est pas créable par API.
Libre/occupé et listes d'agendas
Freebusy sur plusieurs calendriers avant toute création. CalendarList et ACL pour savoir ce que l'utilisateur voit vraiment, pas ce que votre base suppose.
Google Meet par API
conferenceData.createRequest avec hangoutsMeet et un requestId client. La création est asynchrone (pending, success, failure). conferenceDataVersion=1 est obligatoire pour conserver la conférence.
Sync incrémentale et push
nextSyncToken sur la dernière page, puis syncToken. Push sur Events, CalendarList, ACL et Settings uniquement. La notification n'a pas de corps : il faut relire.
Lexique

Le vocabulaire de l'API Google Calendar

syncToken
Jeton d'incrément, présent seulement sur la dernière page. On le rejoue à l'identique. S'il expire, Google répond 410 Gone : ce n'est pas une anomalie, c'est le signal de tout relire.
X-Goog-Resource-State
État porté par la notification (sync, exists, not_exists). exists couvre création, modification et suppression. Le numéro de message croît sans être séquentiel : on ne déduplique pas dessus.
extendedProperties
Emplacement prévu pour votre clé métier, private ou shared. C'est la seule façon propre de retrouver vos événements après un déplacement fait dans l'interface Google.
conferenceDataVersion
Paramètre à 1 sur insert, update et patch, sinon Meet n'est pas persisté. Le requestId de createRequest doit rester stable pour l'idempotence.
quotaUser
Paramètre ou en-tête x-goog-quota-user. Sans lui, un compte de service Workspace consomme le quota « par utilisateur » à lui seul et tombe en 429 sur des centaines d'agendas.
eventType
Type d'événement, immuable après création. default, birthday, focusTime, fromGmail, outOfOffice, workingLocation. Un client qui fige un enum exhaustif cassera au prochain type.
À savoir

Les contraintes réelles de l'API Google Calendar

01

La notification ne dit pas ce qui a changé

Corps vide, Content-Length 0, état exists pour tout. Toute architecture qui attend un payload est fausse : il faut relire avec syncToken. Le handler se limite à valider le token de canal, enfiler, répondre 200.

02

Deux quotas, et un plafond quotidien

10 000 requêtes par minute par projet, 600 par minute par utilisateur. Seuil quotidien 1 000 000, non augmentable. La facturation du dépassement est annoncée pour plus tard en 2026, avec au moins 90 jours de préavis.

03

Aucun renouvellement automatique de canal

Il faut recréer le watch avec un id différent avant l'échéance, et accepter une période où deux canaux livrent le même signal. Google n'offre pas de signature HMAC : le token de canal est la défense.

04

Récurrences, fuseaux et filtres figés

end.timeZone IANA est obligatoire sur une récurrence. Un syncToken est incompatible avec un filtre qui bouge (timeMin, singleEvents). La sync complète à minuit est un anti-pattern : Google demande une heure tirée au hasard, plus ou moins 25 %.

Google Calendar ou Outlook

API Google Calendar ou Microsoft Graph ?

Deux agendas de travail. Le bon dépend du parc déjà installé, pas d'une préférence technique.

CritèreGoogle CalendarCette pageMicrosoft OutlookGraph agenda et mail
Parc typiqueGoogle WorkspaceMicrosoft 365, PME et ETI françaises
PérimètreAgenda, pas le courrierAgenda et courrier sur le même Graph
NotificationPush sans corps, relecture syncTokenAbonnement Graph, identifiant ou payload enrichi
DisponibilitésFreebusygetSchedule et findMeetingTimes, salles incluses
VisioMeet via conferenceDataTeams côté locataire, pas via cette fiche
Signature du webhookAucune HMAC, token de canal seulementValidation d'abonnement Graph, puis relecture
Le bon casVos équipes vivent dans Google AgendaVos équipes vivent dans Outlook

Les deux se combinent sur un parc mixte. C'est un arbitrage de cadrage, pas un choix définitif. Calendly et Cal.com couvrent la prise de rendez-vous, pas l'agenda de travail.

Notre expertise

Ce que nous mesurons sur une intégration Google Calendar

15 j
premier flux Calendar en production
2 sens
écriture métier et relecture des déplacements
< 1 min
file de relecture après une notification
4
développeurs seniors sur le projet
Comparer

Les autres API d'agenda

Si vos équipes ne sont pas toutes dans Google, ces options se discutent au cadrage.

On combine Google Calendar avec

La stack qui entoure Calendar sur nos projets.

  • HubSpot
  • Twilio
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Intégration Google Calendar : vos questions

Deux mécanismes, pas un. Le push (watch) vous prévient qu'il s'est passé quelque chose, sans dire quoi : la notification n'a pas de corps. La synchronisation incrémentale (syncToken) relit ensuite uniquement les changements, suppressions incluses. On persiste un jeton par agenda, on traite le 410 comme un chemin nominal (purge et resync complète), et on pose votre identifiant métier dans extendedProperties pour ne pas dépendre d'une table parallèle. Un scan complet à heure fixe est l'anti-pattern documenté par Google.

OAuth 2.0 (ou délégation de domaine Workspace), un connecteur qui crée et patche les événements avec conferenceDataVersion=1 si vous voulez Meet, Freebusy avant d'afficher un créneau, puis watch plus syncToken pour le retour. La partie sensible n'est pas l'insert, c'est le renouvellement des canaux, quotaUser en délégation, et les fuseaux IANA sur les récurrences. Nous cadrons le périmètre (quels agendas, quel sens, quels types) avant d'écrire le client HTTP.

Un premier flux utile, typiquement la création d'événements vers l'agenda du collaborateur avec clé métier, se livre en deux à trois semaines. Une sync bidirectionnelle avec push, gestion du 410, Meet et Freebusy demande plutôt six à huit semaines selon le nombre d'agendas et la complexité des récurrences. Nous cadrons le périmètre en amont et vous donnons une estimation ferme avant de commencer. C'est un arbitrage de cadrage, écrit avant le premier appel, pas une surprise de recette.

Non. Elles portent seulement des en-têtes (canal, état exists ou not_exists, numéro non séquentiel). exists veut dire « relis », pas « créé » ou « supprimé ». Sans worker de relecture sur syncToken, vous accumulez des signaux et aucune donnée. Il n'y a pas de HMAC : on vérifie le token de canal contre une table, on répond 200 tout de suite, et on déduplique sur le couple canal/ressource, pas sur le numéro de message.

On suit le parc, pas la préférence du développeur. Workspace : Calendar v3. Microsoft 365 : Graph (événements, calendarView, getSchedule). Un parc mixte se traite avec les deux connecteurs et une règle de priorité par collaborateur. Calendly et Cal.com ne remplacent pas cet agenda : ils portent la prise de rendez-vous, avec leurs propres règles de disponibilité. C'est un arbitrage de cadrage, écrit avant le premier appel, pas une surprise de recette.

Un projet d'intégration Google Calendar ?

Parlons-en. 30 minutes pour cadrer vos agendas, le sens de la sync et ce que l'API permet vraiment, puis vous dire franchement ce qui est faisable.

Parler de mon projet Calendar
Parler de mon projet Calendar