Skip to content
This repository was archived by the owner on Sep 25, 2025. It is now read-only.
This repository was archived by the owner on Sep 25, 2025. It is now read-only.

Google Calendar rate limits #2373

@ojeytonwilliams

Description

@ojeytonwilliams

Our current approach of handling all the events with a single Google account is likely to run into rate limits quite quickly. Those limits are documented here:
https://developers.google.com/calendar/api/guides/quota
https://support.google.com/a/answer/2905486

The hardest limit seems to be

To prevent spamming, a user can send about 2,000 emails to external guests using the Email guests feature.

While that's plenty for a small chapter, it obviously does not scale well - either with activity or number of chapters. Also, they have lower limits unless you have a "subscription account". They do not share what those limits are and it's expensive to get a subscription account.

The possibilities I've considered so far are

  1. Create separate accounts for each chapter
  2. Stop using Google to send emails
  3. Require users to grant Chapter permission to access and update their calendars

None of them are perfect.

Separate accounts

Only works for small chapters (and it's unclear how small).

Do not ask Google to send emails

Scales well, but I do not know if we can provide the same UX as we currently do. Right now, a user can click RSVP and they will immediately get an email from Google with buttons to respond yes/no/maybe. I do not know if we can replicate that.

Ask users for access to their Google calendar

Not all users will have Google accounts, let alone alone want to grant us permission to manipulate them.

Possible next steps

  • Handle the errors we get from hitting the limit (we'll want to do this almost no matter what)
  • Implement 1. Should be enough for small groups.
  • Investigate 2. If we can solve the UX issues this seems like a solid solution.

Discussion is very welcome. We have time to think this through and don't need to rush into an implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIDiscussionIdeas, feature requests, views on features. Anything which is a discussion.Email

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions