L'API Google Calendar est soumise à des quotas pour garantir une utilisation équitable par tous les utilisateurs. Vous devez tenir compte de trois limites importantes lorsque vous utilisez l'API Calendar :
Quotas d'utilisation de l'API : appliqués par projet et par utilisateur. Pour en savoir plus, consultez Types de quotas d'utilisation de l'API Calendar.
Limites d'utilisation générales de Google Agenda : l'API Google Agenda est un service partagé qui comporte des limites visant à protéger les performances globales du système Google Workspace. Pour en savoir plus, consultez Éviter les limites d'utilisation de l'agenda.
Limites opérationnelles : ces limites peuvent être modifiées à tout moment. Par exemple, si vous tentez d'écrire dans un même agenda plusieurs fois de suite.
Quotas de l'API Calendar
Deux types de quotas sont appliqués :
Par minute et par projet : il s'agit du nombre de requêtes que votre projet Google Cloud peut effectuer en une minute.
Par minute, par utilisateur et par projet : il s'agit du nombre de requêtes qu'un utilisateur particulier peut effectuer dans votre projet Cloud. Cette limite vise à vous aider à assurer une répartition équitable de l'utilisation entre vos utilisateurs.
Les quotas sont calculés par minute à l'aide d'une fenêtre glissante. Une augmentation rapide du trafic qui dépasse votre quota par minute pendant une minute entraînera une limitation du débit pendant la période suivante afin de garantir que, en moyenne, votre utilisation reste dans les limites des quotas.
Le tableau suivant détaille ces limites :
| Type de limite d'utilisation | Limite |
|---|---|
| Par minute et par projet | 10 000 requêtes |
| Par minute, par utilisateur et par projet | 600 requêtes |
Seuil de facturation quotidien
Cette limite par jour et par projet définit le nombre maximal de requêtes que votre projet Google Cloud peut utiliser sur une période de 24 heures avant que des frais ne s'appliquent.
L'utilisation en dessous de ce seuil n'entraîne pas de frais supplémentaires et votre compte Google Cloud n'est pas facturé. Les détails complets de la facturation seront communiqués plus tard en 2026, au moins 90 jours avant l'entrée en vigueur des modifications.
Vous ne pouvez pas demander d'augmentation de ce seuil quotidien.
Le tableau suivant détaille la limite :
| Type de seuil limite | Limite |
|---|---|
| Par jour et par projet | 1 000 000 de requêtes |
Pour en savoir plus, consultez Modèle standardisé Google Workspace pour les outils et les API d'agent.
Résoudre les erreurs de quota basées sur le temps
Pour toutes les erreurs temporelles (maximum de N requêtes toutes les X minutes), nous vous recommandons de faire en sorte que votre code intercepte l'exception et utilise une temporisation de retransmission exponentielle tronquée pour vous assurer que vos appareils ne génèrent pas de charge excessive.
L'intervalle exponentiel entre les tentatives est une stratégie standard de gestion des exceptions pour les applications réseau. Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes en augmentant de manière exponentielle le temps d'attente entre les requêtes jusqu'à ce que la durée maximale de l'intervalle soit atteinte. Si les requêtes échouent toujours, il est important que les délais entre les requêtes augmentent au fil du temps jusqu'à ce que la requête aboutisse.
Exemple d'algorithme
Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes de manière exponentielle, en augmentant le temps d'attente entre les tentatives jusqu'à ce que la durée maximale de l'intervalle exponentiel soit atteinte. Exemple :
- Envoyez une requête à l'API Google Calendar.
- Si la requête échoue, attendez 1 +
random_number_milliseconds, puis effectuez une nouvelle tentative. - Si la requête échoue, attendez 2 +
random_number_milliseconds, puis effectuez une nouvelle tentative. - Si la requête échoue, attendez 4 +
random_number_millisecondssecondes, puis effectuez une nouvelle tentative. - Poursuivez ainsi jusqu'à atteindre la valeur
maximum_backoff. - Continuez d'attendre et de relancer la requête jusqu'à atteindre le nombre maximal de tentatives, mais n'augmentez pas le temps d'attente entre les tentatives.
où :
- Le temps d'attente est défini sur
min(((2^n)+random_number_milliseconds), maximum_backoff), avecnincrémenté de 1 pour chaque itération (requête). random_number_millisecondscorrespond à un nombre aléatoire de millisecondes inférieur ou égal à 1 000. Cela permet d'éviter les cas où de nombreux clients sont synchronisés par une situation et effectuent tous une nouvelle tentative au même moment, envoyant des requêtes par vagues synchronisées. La valeur derandom_number_millisecondsest recalculée après chaque nouvelle tentative de la requête.- La valeur
maximum_backoffest généralement définie sur 32 ou 64 secondes. La valeur appropriée dépend du cas d'utilisation.
Le client peut continuer à effectuer des nouvelles tentatives après avoir atteint le délai maximum_backoff.
Au-delà de ce point, il n'est pas nécessaire de continuer à augmenter la durée de l'intervalle exponentiel entre les tentatives. Par exemple, si un client utilise un délai maximum_backoff de 64 secondes, une fois celui-ci atteint, il peut effectuer une nouvelle tentative toutes les 64 secondes. À un certain moment, vous devez empêcher les clients d'effectuer des tentatives à l'infini.
Le temps d'attente entre les nouvelles tentatives et le nombre de tentatives dépendent de votre cas d'utilisation et des conditions du réseau.
Tarifs
L'utilisation standard de l'API Google Calendar est disponible sans frais supplémentaires. Le dépassement des limites de quota de requêtes entraînera des frais sur votre compte de facturation Google Cloud plus tard en 2026. Pour en savoir plus, consultez Modèle standardisé Google Workspace pour les outils et les API d'agent.
Demander une augmentation du quota
Selon l'utilisation des ressources de votre projet, vous pouvez demander un ajustement de quota. Les appels d'API effectués par un compte de service sont considérés comme utilisant un seul compte. La demande d'ajustement de quota ne garantit pas l'approbation. Les demandes d'ajustement de quota qui augmenteraient considérablement la valeur du quota peuvent prendre plus de temps à être approuvées.
Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que votre utilisation de Google Cloud s'accroît, vos quotas peuvent augmenter en conséquence. Si vous prévoyez une augmentation notable de l'utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quota sur la page Quotas et limites du système de la console Google Cloud.
Pour en savoir plus, consultez les ressources suivantes :
- À propos des ajustements de quotas
- Afficher l'utilisation et les limites de vos quotas
- Demander une augmentation de limite de quota
Résoudre les problèmes
Si l'un des quotas est dépassé, votre débit est limité et vous recevez un code d'état 403
usageLimits ou 429
usageLimits en réponse à vos requêtes.
Dans ce cas, vous pouvez essayer les solutions suivantes :
Veillez à suivre toutes les bonnes pratiques : utilisez l'intervalle exponentiel entre les tentatives, randomisez les modèles de trafic et utilisez les notifications push.
Si votre projet se développe et que vous avez plus d'utilisateurs, vous pouvez demander une augmentation de quota.
Si vous atteignez les limites de quota par utilisateur, vous pouvez :
Si vous utilisez un compte de service, répartissez la charge entre les utilisateurs ou entre plusieurs comptes de service.
Bien que vous puissiez demander une augmentation du quota par utilisateur, il n'est généralement pas recommandé de l'augmenter au-delà de la valeur par défaut, car votre application pourrait commencer à atteindre d'autres types de limites, par exemple les limites d'utilisation générale de l'agenda ou les limites opérationnelles.
Testez vos limites de quota en enregistrant un projet de test distinct dont la configuration est similaire à celle de votre projet de production. Pour en savoir plus, consultez Tester la gestion des limites de quota.
Randomiser les modèles de trafic
Les clients Agenda sont sujets à des pics de trafic causés par plusieurs clients effectuant des opérations en même temps. Par exemple, une mauvaise pratique courante pour un client Agenda consiste à effectuer une synchronisation complète à minuit. Cela entraînerait presque certainement un dépassement de votre quota par minute, ainsi qu'une limitation du débit et des interruptions.
Pour éviter cela, assurez-vous que votre trafic est réparti tout au long de la journée, dans la mesure du possible. Si votre client doit effectuer une synchronisation quotidienne, demandez-lui de déterminer une heure aléatoire (différente pour chaque client). Si vous devez effectuer une opération régulièrement, faites varier l'intervalle de +/- 25 %. Cela permettra de répartir le trafic de manière plus uniforme et d'offrir une bien meilleure expérience utilisateur.
Utiliser les notifications push
Un cas d'utilisation courant consiste à effectuer une action chaque fois qu'un élément change dans l'agenda de l'utilisateur. Un anti-modèle consiste ici à interroger de manière répétée chaque agenda d'intérêt. Cela épuisera très rapidement votre quota. Par exemple, si votre application compte 5 000 utilisateurs et interroge l'agenda de chaque utilisateur une fois par minute, cela nécessite un quota par minute d'au moins 5 000, avant même que tout travail ne soit effectué.
Les applications côté serveur peuvent s'enregistrer pour recevoir des notifications push, ce qui nous permet de vous avertir lorsqu'un événement intéressant se produit. Elles nécessitent plus de travail de configuration, mais permettent une utilisation beaucoup plus efficace de votre quota et offrent une meilleure expérience utilisateur. Veillez à spécifier le eventType pour lequel vous souhaitez recevoir une notification. Pour en savoir plus, consultez Notifications push.
Allocation appropriée avec des comptes de service
Si votre application effectue des requêtes à l'aide de la délégation au niveau du domaine, le compte de service est facturé par défaut en fonction des quotas "par minute, par utilisateur et par projet", et non l'utilisateur dont vous empruntez l'identité. Cela signifie que le compte de service risque d'épuiser son quota et d'être limité, même s'il peut opérer sur les agendas de plusieurs utilisateurs.
Pour éviter cela, vous pouvez utiliser le paramètre d'URL quotaUser (ou l'en-tête HTTP x-goog-quota-user) afin de spécifier une chaîne arbitraire (jusqu'à 40 caractères) qui identifie de manière unique chaque utilisateur. L'API Calendar n'utilise cette valeur que pour les calculs de quota.
Pour utiliser quotaUser afin d'appliquer des limites de débit par utilisateur à différents utilisateurs, vos requêtes doivent répondre aux exigences suivantes :
Inclure une clé API limitée par adresse IP : transmettez une clé API dans le paramètre de requête
keyet configurez cette clé avec des restrictions d'adresse IP spécifiant les adresses IP publiques de vos serveurs backend. Si vous omettez la clé API ou ne configurez pas de restrictions d'adresse IP, l'API Calendar ignorequotaUseret impute le quota au compte authentifié (tel que le compte de service).Omettre l'en-tête
X-Goog-User-Project: n'envoyez pas d'en-tête HTTPX-Goog-User-Projectsur les requêtes qui utilisentquotaUser. La spécification d'un projet utilisateur remplace la clé API pour l'attribution des quotas. L'API Calendar ignore doncquotaUser.
Pour en savoir plus, consultez Limiter les requêtes par utilisateur.
Tester la gestion des limites de quota
Pour vous assurer que votre application peut gérer correctement l'atteinte des limites de quota en pratique (par exemple, via des nouvelles tentatives avec intervalle exponentiel entre les tentatives) et pour minimiser les perturbations potentielles pour vos utilisateurs, nous vous recommandons vivement de tester votre scénario dans un environnement réel.
Pour effectuer des tests sans interférer avec l'utilisation réelle de votre application, nous vous recommandons d'enregistrer un projet distinct réservé aux tests dans la console Google Cloud, puis de configurer l'écran de consentement OAuth de la même manière que pour votre projet de production. Vous pouvez ensuite définir des limites de quota artificiellement basses pour ce projet et observer le comportement de votre application.
Quotas du serveur MCP Agenda
Le serveur MCP Agenda utilise une métrique de répartition des coûts des requêtes. Les tableaux suivants détaillent le coût des requêtes pour chaque méthode du serveur MCP Calendar par section :
Quotas MCP pour Agenda
Deux types de quotas sont appliqués :
Par minute et par projet : coût des requêtes pour votre projet Google Cloud pendant une minute.
Par minute, par utilisateur et par projet : il s'agit du coût des requêtes pour votre projet Google Cloud pendant une minute, qu'un utilisateur particulier peut utiliser.
Le tableau suivant détaille ces quotas :
| Type de limite d'utilisation | Coût des requêtes |
|---|---|
| Par minute et par projet | 10 000 |
| Par minute, par utilisateur et par projet | 600 |
Quotas de l'ensemble d'outils MCP pour Agenda
Le tableau suivant détaille le coût des requêtes pour chaque ensemble d'outils calendarmcp.googleapis.com :
| Point de terminaison | Outil | Coût des requêtes |
|---|---|---|
/mcp/v1 |
|
1 |
|
10 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
Pour en savoir plus, consultez la documentation de référence de l'API Calendar MCP.