Skip to content

Pyas vs. building it yourself on the Google Calendar API, Microsoft Graph and Zoom

Facts checked on October 30, 2026 against Google's, Microsoft's and Zoom's own developer docs. Tell us if they change and we will update this page.

TL;DR

  • Core difference: The provider APIs are free to call. The cost of building on them is the work around the calls: three sign-in reviews, two event models, change notifications that expire, and tokens that break. Pyas has done that work, and you call one API.
  • Time before your first user connects: On your own, Google's review of calendar scopes takes 3 to 10 business days by Google's count and weeks to months by developers' reports, and Zoom's staff put its Marketplace review at 4 to 12 weeks. With Pyas Auth, real users can connect on the first day, on every plan.
  • What breaks later: Google watch channels expire with no call to renew them, Graph subscriptions on events last at most 10,080 minutes, and a dropped notification can't be recovered. Pyas renews both and sends one signed webhook that names the event that changed.
  • Two providers, one shape: Google uses RRULE recurrences and IANA time zones; Outlook uses its own recurrence patterns and Windows time zone names, and stores all-day events in UTC. Pyas returns one event shape with UTC, local time and the IANA zone.
  • Cost: Building it yourself has no per-account fee, and Google plans to charge above its quotas later in 2026. Pyas is free for 3 connected accounts, $75 a month for 200 and $275 for 1,000.
  • Who should pick which: Build it yourself for one provider used only inside your own organization, or when your product is the calendar integration itself. Pick Pyas when calendars are a feature of your product and you want users connecting this week, not after three reviews.

What you build, and what Pyas gives you

Building it yourselfPyas
Google sign-inYour own Google Cloud project and OAuth client, through Google's review for calendar scopes: 3 to 10 business days by Google's count, weeks to months by developers'Pyas Auth, already verified by Google, on every plan
Microsoft sign-inYour own Entra app registration and publisher verificationPyas Auth, on every plan
Zoom sign-inYour own Zoom app through Zoom's Marketplace and security reviewPyas Auth, already approved by Zoom, on every plan
TokensStored, encrypted and refreshed per provider; invalid_grant and revoked access handled by your codeStored encrypted and refreshed by Pyas; connection.broken webhook, and users reconnect in your app with PyasConnect
EventsTwo models: Google's RRULE and Graph's recurrence patterns, IANA and Windows time zone namesOne event shape, with UTC, local time and the IANA zone
Change notificationsGoogle channels that expire with no renew call; Graph subscriptions up to 10,080 minutes; a scheduled sync for what gets droppedSigned webhooks naming the event or calendar; channels and subscriptions renewed for you
Free time across peopleGoogle freeBusy and Graph getSchedule, merged and put through working hours by your codeFree/busy and meeting times across Google and Outlook in one call
Meeting linksconferenceDataVersion=1 for Meet; Teams only on Microsoft 365; Zoom created separately and copied onto the eventMeet, Teams and Zoom from one conferencing field
TestingReal accounts; Google test users' tokens expire after 7 daysA sandbox of simulated Google, Outlook and Zoom accounts
FeesNo per-account fee; Google plans charges above its quotas later in 2026Free for 3 accounts; $75 a month for 200

The core difference

The Google Calendar API, Microsoft Graph and the Zoom API are free to call. What costs time is everything around the calls. Before a user outside your company can connect, each provider wants to review your app. Once they connect, you keep their tokens alive, keep a push channel or subscription open for every calendar, and translate between two different ideas of what an event is.

Pyas is that layer, built once. Your users connect Google, Outlook and Zoom through Pyas Auth, which Google, Microsoft and Zoom have already verified. Your code calls one API for events, free time, meeting links and webhooks, and gets the same shape back from every provider.

What building it yourself involves

Google Calendar

  1. A Google Cloud project and OAuth client, with a consent screen, verified domains and a privacy policy.
  2. Google's review. Calendar scopes are sensitive. Until Google verifies the app, only 100 new users can ever sign in, each sees "Google hasn't verified this app", and test users' refresh tokens expire after seven days. The review asks for a justification per scope and a demo video. How long it takes: 3 to 10 business days by Google's count, weeks to months by developers' reports.
  3. Push notifications. A watch channel per calendar, which expires, and "there's no automatic way to renew a notification channel." Each notification only says something changed, so you sync with a sync token, and start over when it expires with 410 Gone.
  4. Meet links, which Google ignores unless the request carries conferenceDataVersion=1. Details in meeting links from an API.
  5. Deleted events, which a read returns with status: cancelled instead of a 404.

Outlook and Microsoft 365

  1. An app registration in Microsoft Entra, with publisher verification, and code for MSAL's token cache. Our Node.js guide walks through it.
  2. Admin consent. Microsoft's default consent setting keeps users from approving calendar access on their own in many work tenants, so they see "Need admin approval".
  3. Subscriptions that last at most 10,080 minutes on events, need a validation reply within 10 seconds, and fail without warning when they lapse. "Dropped notifications can't be recovered," so a scheduled sync has to catch what was lost.
  4. Windows time zone names, including three Canadian ones the standard mapping lacks, and all-day events stored in UTC.
  5. Teams links, which only Microsoft 365 calendars allow. On a personal Outlook.com calendar the event is created with no meeting and no error.

Zoom

  1. A Zoom OAuth app and Zoom's Marketplace review: a test plan with test logins, a reason for every scope, your full tech stack, an architecture diagram and a security review against the OWASP Top 10. Until it passes, only people on your own Zoom account can authorize it.
  2. Meetings that are not events. You create the meeting, copy its link onto a Google or Outlook event and keep the two in step, within Zoom's limit of 100 creates and updates per user per day.

Then the parts every provider shares

  • Tokens: stored encrypted, refreshed, and handled when a user revokes access or Google's limit of live refresh tokens retires an old one.
  • Free time across people: Google's freeBusy returns busy intervals for up to 50 calendars, Graph's getSchedule covers up to 20 people and not personal accounts. You merge them in UTC, then apply each person's working hours. See free/busy across Google and Outlook.
  • Recurring events: RRULE on Google, recurrence patterns on Graph, and occurrences that change on their own.
  • Keeping up: Google's quota and pricing changes, Microsoft retiring EWS in Exchange Online, and a new Zoom review for every new scope.

When building it yourself is the right choice

Your users are all inside your own organization. An app used only by people in your own Google Workspace can use the Internal user type, which skips Google's review, and a single-tenant Entra app is approved once by your own administrator. The hardest part of the work goes away.

You need one provider and one feature. If the product only ever writes events to Google Calendar, one integration with one event model is a reasonable thing to own.

The integration is your product. If you sell calendar infrastructure yourself, owning every layer is the point.

When Pyas is the right choice

Calendars are a feature of your product, not the product. A booking flow, a CRM that logs meetings, an assistant that schedules. Your time goes into the feature, and Pyas covers the Google, Outlook and Zoom layer underneath.

You want users connecting now. Pyas Auth is on every plan, the free one included, so real users can connect while your own Google review would still be in the queue.

Your users are on both Google and Outlook. One event shape, one webhook format, and free time across both in one call, instead of two of everything.

You want to test before anyone connects. Every Pyas app has a sandbox of simulated Google, Outlook and Zoom accounts with real-looking calendars, reached with test keys.

Who handles the reviews

On your own, every review is yours: Google's for calendar scopes, Zoom's for the Marketplace, and Microsoft's publisher verification. Each takes days to weeks, and each comes back if you add a scope.

With Pyas Auth, users approve Pyas on Google's, Microsoft's and Zoom's own consent screens, and the reviews are already done. If you want your own name on the consent screen later, Native Auth switches one provider at a time to your own app, so you can go through a review on your own schedule while your users keep working.

Microsoft's admin consent is the one step neither path removes. It is each work tenant's policy, so a Microsoft 365 administrator may need to approve calendar access whichever app users are approving.

What it costs

The provider APIs have no per-account fee. Google says standard use of the Calendar API "is available at no additional cost" and plans to charge above its quotas later in 2026, with at least 90 days' notice.

The real cost is engineering time: the build, the reviews, and the upkeep that never ends. Pyas's pricing is per connected account: free for 3, $15 a month for 10, $45 for 60, $75 for 200, then $0.25 each. A product with 1,000 connected calendars pays $275 a month.

Questions to ask before you choose

  • Will people outside your organization connect? If yes, you need Google's review on your own. With Pyas Auth you don't.
  • How many providers? Each one is a separate sign-in, event model and notification system.
  • Do you need Zoom links? On your own, that is a Zoom app and Zoom's review. With Pyas, it is one field.
  • Who keeps it running? Channels and subscriptions expire every few days, tokens break, and providers change their APIs. Someone owns that every week.
  • How soon do you need real users? Count the reviews before your launch date.

Moving from your own integration to Pyas

  1. Build against the sandbox. Point your calendar code at Pyas test keys and check reads, writes, recurring events and meeting links on simulated accounts.
  2. Keep your own apps if you want. With Native Auth, your Google, Microsoft or Zoom app stays on the consent screen. Or switch to Pyas Auth and retire them.
  3. Have users connect once through PyasConnect. Their events stay in Google Calendar and Outlook, so there is nothing to export or import.
  4. Replace your push handling. Drop channel renewal, subscription renewal and sync-token storage, and handle Pyas's webhooks, which name the event or calendar that changed.
  5. Delete the provider-specific code: time zone mapping, recurrence translation, Meet and Teams request details.

The bottom line

Building it yourself makes sense when your users are all inside your own organization, or when the integration is the product you sell. For everyone else, the provider APIs are the easy part. The reviews, the event models and the notifications that expire are the work, and Pyas has already done it. Start in the sandbox, and connect real users on the free plan the same day.

Questions

Is the Google Calendar API free?
For now, yes. Google says "All standard use of the Google Calendar API is available at no additional cost", with quotas of 10,000 requests per minute per project and 600 per minute per user. Google plans to charge above its limits later in 2026 and has not published a price. See Google Calendar API quotas and pricing.
How long does it take to build a Google Calendar and Outlook integration?
The code for reading and writing events is days of work. The waiting is longer: Google's review of calendar scopes, which developers report taking weeks to months, and Zoom's Marketplace review if you add Zoom, which Zoom's staff put at 4 to 12 weeks. After launch comes the upkeep: renewing push channels and subscriptions, refreshing tokens and following provider changes such as Microsoft retiring EWS.
Do I need Google's OAuth verification to read users' calendars?
Yes, if people outside your own Google Workspace organization will connect. Calendar scopes are sensitive, so until Google verifies your app only 100 new users can ever sign in, each sees an unverified-app warning, and testing users' tokens expire after seven days. With Pyas Auth, users approve Pyas, which Google has already verified.
Can I keep my own OAuth apps and still use Pyas?
Yes. Native Auth lets you use your own Google, Microsoft or Zoom app, one provider at a time, so the consent screen shows your product's name. Pyas then handles the tokens, webhooks and event model on top of your app.
What do I still build with Pyas?
Your product: the screens, your scheduling rules and what you store. Pyas handles sign-in, tokens, the event model across providers, free time, meeting links and change notifications. Microsoft's admin consent in work tenants still applies, because it is the tenant's policy, not the app's.