Google Calendar API, without Google's OAuth review
Your users connect Gmail and Google Workspace calendars through Pyas Auth, which Google has already verified, so you skip Google's OAuth review, its 100-user cap and the tokens that expire every seven days in testing. Then you read and write events, add Meet links and find free time with the same calls you use for Outlook.
{
"provider": "google",
"title": "Project Atlas kickoff",
"startsAt": "2026-11-03T19:00:00Z",
"startsAtLocal": "2026-11-03T14:00:00-05:00",
"timezone": "America/New_York",
"conferencing": { "provider": "meet" }
}Where Google Calendar surprises people
Each of these is in Google's documentation or something we hit while testing on real Gmail and Workspace accounts. The left column is what Google does. The right is what you get from Pyas.
The OAuth review
Calendar scopes are sensitive. Until Google verifies your app, at most 100 new users can ever sign in, each sees an unverified-app warning, and test users' tokens expire after seven days.
Pyas: With Pyas Auth, your users approve Pyas on Google's own consent screen, and Google has already verified it. No review of your own, no cap, no weekly reconnects.
Meet links
Without conferenceDataVersion=1 on the request, Google silently ignores the conference data, and a new link can still be pending in the response.
Pyas: Ask for conferencing with provider meet on the event. Pyas sends what Google needs on every create and update.
Deleted events
Reading a deleted event by its ID returns the whole event with status cancelled, not a 404, and updating it still succeeds.
Pyas: A deleted Google event answers 404 RESOURCE_NOT_FOUND, the same as on Outlook.
Push notifications
Watch channels expire (a week by default), there is no call to renew one, and a notification only says that something changed.
Pyas: Pyas keeps the channels open and sends you signed webhooks that name the exact event that changed.
Sync tokens
An expired sync token answers 410 Gone, and you start a full sync from scratch.
Pyas: Pyas's change pipeline starts over by itself, so webhooks keep coming. If you sync yourself, an expired token is a clear RESOURCE_SYNC_TOKEN_EXPIRED with the fix.
Your own data on events
extendedProperties allow 300 properties and 32 kB per event; keys over 44 characters are silently dropped and values over 1,024 characters silently truncated.
Pyas: Save up to 50 values as metadata on any event, searchable across your app, the same way on Outlook.
Service accounts
A service account cannot invite attendees without domain-wide delegation, which only works inside one Workspace domain.
Pyas: Each person connects their own Gmail or Workspace calendar, and invitations come from them.
Gmail and Google Workspace
Both connect through the same PyasConnect button, and both work the same way through the API.
- Gmail
- Personal Google accounts. Events, free/busy, Meet links and webhooks all work.
- Google Workspace
- Work and school accounts. Everything works the same way. A Workspace administrator can restrict which third-party apps may reach Google data; when that applies, the person connecting sees Google's explanation and their admin decides.