Depending how you've set up your account, Google may temporarily "rate limit" calendar activity coming from a single account (i.e. your booking user in Robin) for a handful of reasons. You can find a few common ones listed here. Typically we'd expect to see this error come from co-working spaces or other multi-tenant environments where the following happens:
Sending too many invitations or emails to external guests
In order to prevent spamming, Google Calendar limits the number of invitations a user can send to external guests. This limit varies depending on the action, and is usually between 100-300 guests.
G Suite users can send invitations to any number of guests from their primary domain, or from secondary domains associated with their primary domain.
An extreme example of this:
- You connect a booking account to Robin: email@example.com
- You have 10 users in Robin on different domains, none of them on example.com
- Everyone tries to book their event at once, inviting 10 of their closest friends on different domains
- When trying to book their next events, these users see "Rate Limit Exceeded" errors on save.
"How can I book my event?"
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. We typically see limits last for anywhere from 30 minutes to 3 hours before going away.
There is one exception. If you're an admin for your organization in Robin, you can try one of the approaches below to immediately solve the problem. If this isn't an option, you will need to retry later when the rate limit has expired and use some of the tips below to prevent it from happening again.
Why does this happen?
Since none of the people in the example have the permission to book the calendars directly, Robin uses the booking account to create the event on everyone's behalf. Google doesn't realize this is the case, since it just sees a single account (e.g. firstname.lastname@example.org) sending invites to 210 external people (10 events x 11 invitees, including the organizer) in a short time. If this happens too much, they will apply the rate limit to prevent spam.
Keep in mind this isn't the case when your company all works from the same domain, since invites between coworkers aren't viewed the same way in Google-land. This is good news, generally.
How can you prevent it from happening?
You have a few options. We'll start with the best one.
If your booking account is on the same Google domain as your users, this is solved by enabling impersonation within Robin. Impersonation allows people to book events as themselves inside Robin instead of via the booking account. It also requires some extra permissions that won't be available to multi-tenant environments (e.g. co-working spaces w/ 100's of people on dozens of different emails).
Add a Backup Account
To help co-working spaces, in September 2017 we've added an option to connect a second booking account via Settings > Google > Backup Account. Once connected, it will automatically step in whenever the primary account reaches the rate limit and will revert back once the primary account.
Both Google accounts should have identical access to calendars, otherwise you're likely to see permission errors whenever the backup account tries to manage events the original booking account made.
Reduce external invitees on events
If enabling impersonation isn't an option for your organization (e.g. co-working), and you're frequently hitting rate limits under normal usage we recommend a small change for your end users to improve your odds.
Have tenants use Robin to book the room, not manage their invitee lists. This will reduce the number of off-domain calendar invites sent throughout the day. They can reserve the room and then invite their guests through their normal calendars.
If you've tried the above and still frequently hit rate limits towards the end of the day, let us know and we'll help find the best way to configure your account to match the average work day.