As stated in the documentaion user rate limit is flood protection. An application can only make X number of requests per second.

403: Rate Limit Exceeded The per-user limit from the Developer Console has been reached.

    {
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "rateLimitExceeded",
    "message": "Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

Suggested actions:

Use exponential backoff.

You can try adding quota user this helps sometimes.

quotaUser An arbitrary string that uniquely identifies a user.
Lets you enforce per-user quotas from a server-side application even in cases when the user's IP address is unknown. This can occur, for example, with applications that run cron jobs on App Engine on a user's behalf. You can choose any arbitrary string that uniquely identifies a user, but it is limited to 40 characters.

If you are getting a quota error then it has been exceeded even though you dont think it has. Application level quotas can not be increased. The only thing you can do is slow down.

Answer from Linda Lawton - DaImTo on Stack Overflow
🌐
Google
developers.google.com › google workspace › google calendar › manage quotas
Manage quotas | Google Calendar | Google for Developers
October 13, 2025 - To view or change usage limits for your project, or to request an increase to your quota, do the following: If you don't already have a billing account for your project, then create one. Visit the Enabled APIs page of the API library in the API Console, and select an API from the list. To view and change quota-related settings, select Quotas. To view usage statistics, select Usage. When we want you to slow down your rate of requests, we will return a 403 "usageLimits" response or a 429 response (see the full error documentation).
Discussions

Calendar API, Rate Limiting, and Domain Wide Delegated Auth
I asked your question to GPT4, and the answer is pretty good. I hope this helps. Below is the response from GPT4. It sounds like you're doing a good job understanding and adhering to the Google Calendar API and its rate limiting. Here's how I can answer your questions: Doing something wrong? From what you've described, it doesn't sound like you're doing anything obviously wrong. However, keep in mind that the rate limits provided by Google are not guarantees. They are more like guidelines or estimates. Google uses dynamic rate limiting, which means they don't just look at the number of requests per second, but also factors like how many requests you've made in the past, the load on their servers, etc. It's also possible that each event within a batch request is being treated as a separate request for rate limiting purposes. Using domain-wide delegated auth? Domain-wide delegated auth (also known as service account auth) and auth code flow are two different ways of authenticating and authorizing your application. Auth code flow is typically used when you're dealing with individual users, whereas domain-wide delegated auth is used when you want your application to act on behalf of a whole domain. In terms of rate limits, switching to domain-wide delegated auth might help, but it might also complicate things as you've mentioned. It might be worth a try if you're hitting rate limit issues, but keep in mind the potential impact on customer onboarding. Batch sizes and throttling? It is likely that the throttling you're experiencing is related to the batch size. As I mentioned earlier, it's possible that Google is treating each event within a batch request as a separate request for rate limiting purposes. This would mean that a batch request with 50 events would count as 50 requests. If this is the case, then reducing the batch size would reduce the rate at which you're hitting the rate limit. What else to consider? Here are a few other things you might want to consider: Exponential backoff: If you're not already doing this, implementing exponential backoff can help deal with rate limit issues. This is where you gradually increase the delay between requests each time you hit the rate limit. Optimize your requests: Try to minimize the number of requests you're making. For example, if you're retrieving a list of events before creating new ones, try to do this in one request rather than two. Reach out to Google: If you're still having issues, it might be worth reaching out to Google for support. They may be able to provide more insight into why you're hitting the rate limit and offer solutions. More on reddit.com
🌐 r/googlecloud
1
1
May 28, 2023
Rate Limit Exceeded Issue with Google Calendar API Integration
I’m working on a C# application that syncs data with Google Calendar API and I keep running into rate limit problems. The Problem: My app processes multiple users who have authorized calendar synchronization. Even though I stay within the daily quota (1M requests per day, 25K per 100 seconds ... More on community.latenode.com
🌐 community.latenode.com
0
August 28, 2025
Google Calendar "Calendar limits exceeded" error, but "Queries per minute" are way under the limit
Hello! We’re dealing with a weird situation where some Google Cal API requests respond with the 403 “Calendar limits exceeded”. The setup is like this: We have two accounts (say [email protected], and [email protected]) that are signed in into our management platform (OAuth ... More on discuss.google.dev
🌐 discuss.google.dev
1
1
January 18, 2024
Google Calendar "Calendar limits exceeded" error, but "Queries per minute" are way under the limit
Hello! We’re dealing with a weird situation where some Google Cal API requests respond with the 403 “Calendar limits exceeded”. The setup is like this: We have two accounts (say [email protected], and [email protected]) that are signed in into our management platform (OAuth ... More on googlecloudcommunity.com
🌐 googlecloudcommunity.com
1
1
January 18, 2024
🌐
Google Support
support.google.com › calendar › thread › 129687746 › how-to-avoid-calendar-usage-limits-exceeded-using-google-calendar-api
How to avoid Calendar usage limits exceeded using Google Calendar API? - Google Calendar Community
Skip to main content · Google Calendar Help · Sign in · Google Help · Help Center · Community · Google Calendar · Terms of Service · Submit feedback · Send feedback on
🌐
Reddit
reddit.com › r/googlecloud › calendar api, rate limiting, and domain wide delegated auth
r/googlecloud on Reddit: Calendar API, Rate Limiting, and Domain Wide Delegated Auth
May 28, 2023 -

Hey all, could use some help. I have two questions that are separate but may be related.

Building a SAAS app, in simple terms you can think of it as needing to create 100,000 Calendar Events in Google for multiple different Tenants, each of which have authorized the SAAS app to do this. This runs as a daily job.

Right now, the app uses an authorization code flow where an Admin in the tenant does an OAuth handshake which allows us access to the scopes we need to do the sync.

In order to create the events, we are using the batch API so we hit:

POST https://www.googleapis.com/batch/calendar/v3/

And then within that a bunch of:

POST /calendar/v3/calendars/{calendarId}/events

This allows up to 50 events per request.

GCP says you can also do up to 600 requests / minute (or 10 requests / second). And I saw that a single POST should count as 1 request, even to a batch endpoint.

The strange thing that’s happening is that I am getting rate limited even when calling Google way slower than 10 requests / second. Even stranger, if I use a batch size of 2 it seems to work fine, but if I use a batch size of 50 (at the same request rate) I get throttled. Even when slowing down my requests well below 10 / requests / second.

So my questions are:

  1. Does it sound like I am doing something wrong here?

  2. Should we be using domain wide delegated auth instead of auth code flow? I read somewhere this may impact rate limiting. The main hesitation here is that customer onboarding is more difficult using domain wide delegated auth than simple auth code flow.

  3. Is there any relationship between batch sizes and throttling? I think my mental model is wrong for this works.

  4. What am I not considering that may be causing me to get throttled?

Any help is greatly appreciated. Thanks!

Top answer
1 of 1
1
I asked your question to GPT4, and the answer is pretty good. I hope this helps. Below is the response from GPT4. It sounds like you're doing a good job understanding and adhering to the Google Calendar API and its rate limiting. Here's how I can answer your questions: Doing something wrong? From what you've described, it doesn't sound like you're doing anything obviously wrong. However, keep in mind that the rate limits provided by Google are not guarantees. They are more like guidelines or estimates. Google uses dynamic rate limiting, which means they don't just look at the number of requests per second, but also factors like how many requests you've made in the past, the load on their servers, etc. It's also possible that each event within a batch request is being treated as a separate request for rate limiting purposes. Using domain-wide delegated auth? Domain-wide delegated auth (also known as service account auth) and auth code flow are two different ways of authenticating and authorizing your application. Auth code flow is typically used when you're dealing with individual users, whereas domain-wide delegated auth is used when you want your application to act on behalf of a whole domain. In terms of rate limits, switching to domain-wide delegated auth might help, but it might also complicate things as you've mentioned. It might be worth a try if you're hitting rate limit issues, but keep in mind the potential impact on customer onboarding. Batch sizes and throttling? It is likely that the throttling you're experiencing is related to the batch size. As I mentioned earlier, it's possible that Google is treating each event within a batch request as a separate request for rate limiting purposes. This would mean that a batch request with 50 events would count as 50 requests. If this is the case, then reducing the batch size would reduce the rate at which you're hitting the rate limit. What else to consider? Here are a few other things you might want to consider: Exponential backoff: If you're not already doing this, implementing exponential backoff can help deal with rate limit issues. This is where you gradually increase the delay between requests each time you hit the rate limit. Optimize your requests: Try to minimize the number of requests you're making. For example, if you're retrieving a list of events before creating new ones, try to do this in one request rather than two. Reach out to Google: If you're still having issues, it might be worth reaching out to Google for support. They may be able to provide more insight into why you're hitting the rate limit and offer solutions.
🌐
Google
developers.google.com › google workspace › google calendar › handle api errors
Handle API errors | Google Calendar | Google for Developers
October 13, 2025 - { "error": { "errors": [ { "domain": "usageLimits", "reason": "userRateLimitExceeded", "message": "User Rate Limit Exceeded" } ], "code": 403, "message": "User Rate Limit Exceeded" } } ... Make sure your app follows best practices from manage quotas. Raise the per-user quota in the Developer Console project. If one user is making a lot of requests on behalf of many users of a Google Workspace account, consider using a service account with domain-wide delegation and setting the quotaUser parameter. Use exponential backoff. The user has reached Google Calendar API's maximum request rate per calendar or per authenticated user.
🌐
Elfsight
elfsight.com › blog › how-to-use-google-calendar-api-v3-cost-limits-examples
How to use Google Calendar API: cost, limits, examples
June 9, 2023 - The Calendar API has a limit of 1,000,000 queries per day. If you want to change your usage limits or increase your quota, take the following steps: Create a billing account if you haven’t got one.
🌐
Latenode
community.latenode.com › other questions › google calendar
Rate Limit Exceeded Issue with Google Calendar API Integration - Google calendar - Latenode Official Community
August 28, 2025 - Even though I stay within the daily quota (1M requests per day, 25K per 100 seconds per user), I still get this error for certain users: Google.Apis.Requests.RequestError Rate Limit Exceeded [403] Errors [ Message[Rate Limit Exceeded] Location[ ...
🌐
Google
discuss.google.dev › google cloud › integration services
Google Calendar "Calendar limits exceeded" error, but "Queries per minute" are way under the limit - Integration Services - Google Developer forums
January 18, 2024 - Hello! We’re dealing with a weird situation where some Google Cal API requests respond with the 403 “Calendar limits exceeded”. The setup is like this: We have two accounts (say [email protected], and [email protected]) that are signed in into our management platform (OAuth with all calendar scopes) We have client accounts (>20), that each share (w/ Edit events permissions) their calendars with either worker1@... or worker2@... in such a way that’s it’s reasonably balanced) Both we...
Find elsewhere
🌐
Qlik Help
help.qlik.com › qlik cloud › analyzing data › loading and modeling analytics data › loading analytics data › data sources in qlik cloud analytics › web-based data sources › google calendar
Google Calendar | Qlik Cloud Help
You receive an error message that you have reached the API rate limit · You can refer to the Google Calendar API documentation to learn more about the requirements and restrictions imposed by the Calendar API.
🌐
Medium
medium.com › @aguimarneto › google-calendar-api-a-comprehensive-guide-ed9fb55f089b
Google Calendar API: A Comprehensive Guide | by Aguimar Neto | Medium
October 25, 2023 - Rate Limits: In addition to request quotas, rate limits are also in place for the Google Calendar API. Rate limits determine how many requests can be made within a specific time frame, such as per minute or hour.
🌐
Google Developers
developers.googleblog.com › google for developers blog › the google calendar api has changed how we manage api usage
The Google Calendar API has changed how we manage API usage - Google Developers Blog
September 7, 2021 - The Google Calendar API has changed how it manages API usage. Previously, queries were monitored and limited on a daily basis. As of May 2021, queries started to be monitored and limited on a per-minute basis.
🌐
Google Cloud
googlecloudcommunity.com › google cloud › integration services
Solved: Google Calendar "Calendar limits exceeded" error
January 18, 2024 - Hello! We’re dealing with a weird situation where some Google Cal API requests respond with the 403 “Calendar limits exceeded”. The setup is like this: We have two accounts (say [email protected], and [email protected]) that are signed in into our management platform (OAuth with all calendar scopes) We have client accounts (>20), that each share (w/ Edit events permissions) their calendars with either worker1@... or worker2@... in such a way that’s it’s reasonably balanced) Both we...
🌐
Robin Help Center
support.robinpowered.com › hc › en-us › articles › 115003147826--Why-am-I-getting-calendar-rate-limit-errors-from-Google
"Why am I getting calendar rate limit errors from Google?" – Robin Help Center
November 30, 2022 - Once a rate limit is hit for your Google account's calendar, the only way to book new events is waiting until it goes away. This rate limit is managed by Google, and not something Robin can estimate specific countdowns for.
🌐
Google Cloud
cloud.google.com › application development › service infrastructure › rate limiting
Rate Limiting | Service Infrastructure | Google Cloud
Currently, the supported rate limiting is the number of requests per minute per service consumer, where the service consumer is a Google Cloud project as identified by an API key, a project id, or a project number.
🌐
Google Support
support.google.com › a › answer › 2905486
Avoid Calendar use limits - Google Workspace Admin Help
Wait until the limit replenishes. Split the operation between multiple users. ... Professional email, online storage, shared calendars, video meetings and more.
🌐
Google Support
support.google.com › a › answer › 6301355
Monitor API quotas - Google Workspace Admin Help
Use the filters at the top of the page to adjust the list by Quota type, Service, Metric, or Location. By default, the list is sorted to show your most used quota first (in terms of peak usage over the last 7 days), helping you see limits that are at risk of being exceeded.
🌐
Zapier
community.zapier.com › troubleshooting-99 › zapier-runs-into-this-google-calendar-step-hit-an-error-the-app-returned-rate-limit-exceeded-49371
Zapier runs into "This Google Calendar step hit an error. The app returned "Rate Limit Exceeded"." | Zapier Community
May 15, 2025 - As the new records were added to the Airtable in bulk instead of one at a time, that’s what caused those rate limit errors. If you replay the Zap runs that errored now they should be able to go through successfully. If you’ll often be adding in new student records to Airtable in batches of a dozen then it may be worth adding a Delay After Queue action to help space out each request to Google Calendar’s API, so that you don’t continue to hit those rate limit errors going forward.