Google (Gmail + Calendar)
Google · workspace.google.com · Developer portal
sourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
Apps that access restricted scope data from or through a third-party server need a security assessment by a Google-empanelled assessor, using the App Defense Alliance CASA framework.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Restricted scope apps must pass an annual security assessment at assurance level AL1 or AL2, assigned by risk, as the final step after other requirements, started when Trust and Safety contacts you.
Security AssessmentThe App Defense Alliance tiering page (https://appdefensealliance.dev/casa/casa-tiering) also lists AL1 and AL2 with yearly revalidation.
sourced · official docs · 2026-10-28
inferred
An inbox assistant that reads mail and drafts replies needs a restricted Gmail scope, which puts it in tier 4. A send-only agent with Calendar would be tier 3.
Reading needs gmail.readonly or gmail.modify and drafting needs gmail.compose, all restricted (e1). Restricted scopes need the assessment (e2, e12). gmail.send and Calendar are sensitive (e1, e33).
inferred · reasoning · 2026-10-28
sourced
Google's restricted scope list includes gmail.readonly, gmail.metadata, gmail.modify, gmail.insert, gmail.compose, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/. It lists no Google Calendar scope.
Restricted scopes listsourced · official docs · 2026-10-28
Customer-side gate: A Workspace admin can restrict Gmail or Calendar or block unconfigured apps. Then only apps marked Trusted or Specific Google data can connect, even after verification.
App types (2)
- External user type, Web application client: Any Google user connects their own Gmail and Calendar. This guide covers this path.
- Internal user type: Only users in your Google Cloud organization. No verification. Outside users get an org_internal error.
- Docs read(reached)
- Endpoints probed(reached)
- Portal checked(reached)
- Set up by a person(not reached)
Evidence: 0 tested, 3 probed, 30 sourced, 2 inferred
Generate a live guide to compare with this one.
Next step
Build on Composio's managed app You1 hour
Connect Gmail and Calendar through Composio managed auth. You do not need a Google app yet.
https://docs.composio.dev/toolkits/managed-authWhat does your agent need?
Select everything it does. Scopes decide the tier.
This is the hardest marked scope. If lighter scopes cover your use case, you need tier 3 (Review required).
Start today
sourced
Gmail and Google Calendar are listed in Composio's managed OAuth table.
Composio managed authsourced · composio docs · 2026-10-28
sourced
A custom auth config applies to new connections only; existing users must reconnect or be imported. With managed auth, Google's consent screen names Composio.
White-labeling authenticationsourced · composio docs · 2026-10-28
sourced
Reasons to bring your own app: your branding on consent, custom scopes, dedicated rate limit quota, and polling faster than the managed 15 minute minimum. You add the redirect URI shown in the Composio dashboard to your Google client.
Custom app vs managed appsourced · composio docs · 2026-10-28
Composio provides managed OAuth for Gmail and Google Calendar. The consent screen says Composio, and you share quota. After you switch to your own app, existing users keep their connection until they re-authenticate, or until you import their credentials where Composio supports it.
Time and effort
You can build while you wait.
| Stage | Who can connect | Hands-on | Waiting | Review |
|---|---|---|---|---|
| Prototype (Testing status) | You and up to 100 test users on the Audience page. sourcedIn Testing status, up to 100 test users can connect, and test user authorizations expire 7 days after consent unless only basic sign-in scopes are requested. Manage app audiencesourced · official docs · 2026-10-28 sourcedExternal apps in Testing status get refresh tokens that expire in 7 days; there is a limit of 100 refresh tokens per Google Account per client; Gmail-scoped refresh tokens stop working when the user changes password; admin restrictions return admin_policy_enforced. Using OAuth 2.0 to Access Google APIssourced · official docs · 2026-10-28 sourcedGmail and Google Calendar are listed in Composio's managed OAuth table. Composio managed authsourced · composio docs · 2026-10-28 | 1 h to 3 h | none | No |
| Limited beta (In production, unverified) | Up to 100 new users in total, after an unverified app warning. sourcedApps showing the unverified app screen are limited to 100 new users in total over the project's lifetime, and the cap cannot be reset. Manage app audiencesourced · official docs · 2026-10-28 sourcedAn unverified app with sensitive or restricted scopes shows an unverified app screen, is limited to 100 new users until verified, and verification might take several months. Unverified appssourced · official docs · 2026-10-28 sourcedExternal apps in Testing status get refresh tokens that expire in 7 days; there is a limit of 100 refresh tokens per Google Account per client; Gmail-scoped refresh tokens stop working when the user changes password; admin restrictions return admin_policy_enforced. Using OAuth 2.0 to Access Google APIssourced · official docs · 2026-10-28 | 1 h to 2 h | none | No |
| Production (verified, restricted scopes) | Any Google user, with no warning screen. Workspace admins can still block you. sourcedGoogle's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed. OAuth verification FAQsourced · official docs · 2026-10-28 sourcedApps that access restricted scope data from or through a third-party server need a security assessment by a Google-empanelled assessor, using the App Defense Alliance CASA framework. Restricted scope verificationsourced · official docs · 2026-10-28 sourcedRestricted scope apps must reverify and be reassessed at least every 12 months after the assessor's Letter of Assessment approval date. Google emails project Owners and Editors when it is due. Restricted scope verificationsourced · official docs · 2026-10-28 sourcedA developer reports a 2026 verification request for the sensitive calendar.events scope waiting about 4 months with no Trust and Safety email. Related thread titles mention waits of 50 or more days. OAuth verification pending since 22 Apr 2026One thread read in full. The 50 day figure comes only from a related thread title. No staff answer shown. sourced · community · 2026-10-28 sourcedA vendor-published comparison lists CASA Tier 2 at about $540 to $1,800 and Tier 3 at about $4,500 to $8,000 or more. Turnaround is 1 to 4 weeks for Tier 2, 2 to 6 weeks for Tier 3, and some large labs quote 4 to 8 weeks. CASA Tier 2 and Tier 3 providers and pricingLabeled as of 2024. Published by Switch Labs, a vendor that is not one of the listed labs. Uses older Tier 2/3 names, not AL1/AL2. sourced · community · 2026-10-28 sourcedAn unverified app with sensitive or restricted scopes shows an unverified app screen, is limited to 100 new users until verified, and verification might take several months. Unverified appssourced · official docs · 2026-10-28 | 30 h to 100 h | Provider says: 42 daysDevelopers report: 35+ days | Yes |
- Prototype (Testing status): Test user grants and refresh tokens expire 7 days after consent. Background agents stop weekly until users reconnect.
- Limited beta (In production, unverified): The 100 user cap covers the life of the project and cannot be reset. Refresh tokens no longer expire after 7 days.
- Production (verified, restricted scopes): Google estimates 2 to 3 business days for branding and 6 weeks for restricted scopes, not guaranteed. A 2024 vendor comparison lists CASA at 1 to 8 weeks. Some reviews stall for months. Reassess every 12 months.
Scopes
Scopes that match your selection are marked.
- Gmail labels and add-on actions (non-sensitive)Light review · Write data
https://www.googleapis.com/auth/gmail.labels https://www.googleapis.com/auth/gmail.addons.current.action.compose
No data access review. Brand verification only. Too narrow for an inbox agent.sourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
Google's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed.
OAuth verification FAQsourced · official docs · 2026-10-28
- Calendar read and write (sensitive)Review · Read data, Write data, Act while offline
https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/calendar
Needs verification with a demo video and scope justification. No security assessment. access_type=offline works at any tier.sourced
Google gives reading events stored in Google Calendar as an example of a sensitive scope, and its sample justification uses the full calendar scope.
Sensitive scope verificationsourced · official docs · 2026-10-28
sourced
Google's sensitive scope page says sensitive verification typically takes 3 to 5 business days, and a compliant brand verification result must be published within 7 days.
Sensitive scope verificationConflicts with the 10 business days in the FAQ (e7).
sourced · official docs · 2026-10-28
sourced
Google's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed.
OAuth verification FAQsourced · official docs · 2026-10-28
inferred
Calendar read and write scopes such as calendar.events are sensitive, not restricted.
Google's restricted list (e35) names no Calendar scope, so Calendar is not restricted. That it is sensitive rather than non-sensitive rests on Google using Calendar event reading as its sensitive example (e9) and a developer thread (e29). No official page labels each Calendar scope. Confirm in the console.
inferred · reasoning · 2026-10-28
sourced
Google's restricted scope list includes gmail.readonly, gmail.metadata, gmail.modify, gmail.insert, gmail.compose, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/. It lists no Google Calendar scope.
Restricted scopes listsourced · official docs · 2026-10-28
- Send mail only (sensitive)Review · Write data
https://www.googleapis.com/auth/gmail.send
Needs verification, no security assessment. Your agent cannot read the inbox or save drafts.sourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
Google's sensitive scope page says sensitive verification typically takes 3 to 5 business days, and a compliant brand verification result must be published within 7 days.
Sensitive scope verificationConflicts with the 10 business days in the FAQ (e7).
sourced · official docs · 2026-10-28
- Read, modify, or draft mail (restricted)Review + audit · Read data, Write data
https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.metadata https://mail.google.com/
Needs verification plus a yearly CASA assessment when data reaches your server. Plan on weeks. An inbox assistant lands here.sourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
Apps that access restricted scope data from or through a third-party server need a security assessment by a Google-empanelled assessor, using the App Defense Alliance CASA framework.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Restricted scope apps must reverify and be reassessed at least every 12 months after the assessor's Letter of Assessment approval date. Google emails project Owners and Editors when it is due.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Restricted scope apps must pass an annual security assessment at assurance level AL1 or AL2, assigned by risk, as the final step after other requirements, started when Trust and Safety contacts you.
Security AssessmentThe App Defense Alliance tiering page (https://appdefensealliance.dev/casa/casa-tiering) also lists AL1 and AL2 with yearly revalidation.
sourced · official docs · 2026-10-28
sourced
Google's restricted scope list includes gmail.readonly, gmail.metadata, gmail.modify, gmail.insert, gmail.compose, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/. It lists no Google Calendar scope.
Restricted scopes listsourced · official docs · 2026-10-28
- Mail settings (restricted)Review + audit · Admin-level
https://www.googleapis.com/auth/gmail.settings.basic https://www.googleapis.com/auth/gmail.settings.sharing
Same review as reading mail. Request only to manage filters, forwarding, or delegates.sourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
Apps that access restricted scope data from or through a third-party server need a security assessment by a Google-empanelled assessor, using the App Defense Alliance CASA framework.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Google's restricted scope list includes gmail.readonly, gmail.metadata, gmail.modify, gmail.insert, gmail.compose, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/. It lists no Google Calendar scope.
Restricted scopes listsourced · official docs · 2026-10-28
Requirements
probed
Developer portal: the Google Auth Platform console page redirects to Google sign-in, so you need a Google account.
https://console.cloud.google.com/auth/overviewHEAD returned 302 to accounts.google.com/ServiceLogin?service=cloudconsole.
probed · probe · 2026-10-28
sourced
Apps showing the unverified app screen are limited to 100 new users in total over the project's lifetime, and the cap cannot be reset.
Manage app audiencesourced · official docs · 2026-10-28
sourced
Verification needs a homepage on a domain you own, a privacy policy on the same domain linked from homepage and consent screen, and every authorized domain verified in Search Console by a project Owner or Editor.
Verification requirementssourced · official docs · 2026-10-28
sourced
Verification needs a homepage on a domain you own, a privacy policy on the same domain linked from homepage and consent screen, and every authorized domain verified in Search Console by a project Owner or Editor.
Verification requirementssourced · official docs · 2026-10-28
sourced
Workspace API data may not be used to train AI or ML models beyond the user's own personalized model, and you must post an affirmative Limited Use statement in the app or on your website.
Google Workspace API User Data and Developer Policysourced · official policy · 2026-10-28
sourced
Limited Use rules: use data only for user-facing features, no transfers except listed cases, no human reading except listed cases, and no ads, data brokers, or credit decisions.
Google API Services User Data Policysourced · official policy · 2026-10-28
sourced
You must request the narrowest scopes and justify each, including why narrower scopes will not work. If user data trains AI models, the video must show explicit user consent.
Verification requirementssourced · official docs · 2026-10-28
sourced
The demo video must be on YouTube as Unlisted and show the English consent flow, the app name, the OAuth client ID in the address bar, and the feature behind each sensitive and restricted scope, for each client.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Apps that access restricted scope data from or through a third-party server need a security assessment by a Google-empanelled assessor, using the App Defense Alliance CASA framework.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Restricted scope apps must reverify and be reassessed at least every 12 months after the assessor's Letter of Assessment approval date. Google emails project Owners and Editors when it is due.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Google does not charge for the security assessment. Independent CASA-authorized assessors do it, and you agree the price with them directly.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
Restricted scope apps must pass an annual security assessment at assurance level AL1 or AL2, assigned by risk, as the final step after other requirements, started when Trust and Safety contacts you.
Security AssessmentThe App Defense Alliance tiering page (https://appdefensealliance.dev/casa/casa-tiering) also lists AL1 and AL2 with yearly revalidation.
sourced · official docs · 2026-10-28
Steps
Prototype
Connect Gmail and Calendar through Composio managed auth. You do not need a Google app yet.
https://docs.composio.dev/toolkits/managed-authsourced
Gmail and Google Calendar are listed in Composio's managed OAuth table.
Composio managed authsourced · composio docs · 2026-10-28
sourced
A custom auth config applies to new connections only; existing users must reconnect or be imported. With managed auth, Google's consent screen names Composio.
White-labeling authenticationsourced · composio docs · 2026-10-28
Use gmail.send if you only send. Reading or drafting needs a restricted scope. Prefer calendar.events over the full calendar scope.
https://developers.google.com/workspace/gmail/api/auth/scopessourced
Gmail scopes are classified: gmail.readonly, gmail.modify, gmail.compose, gmail.metadata, gmail.insert, gmail.settings.basic, gmail.settings.sharing, and https://mail.google.com/ are restricted; gmail.send and two add-on message scopes are sensitive; gmail.labels and two add-on action scopes are non-sensitive.
Choose Gmail API scopessourced · official docs · 2026-10-28
sourced
You must request the narrowest scopes and justify each, including why narrower scopes will not work. If user data trains AI models, the video must show explicit user consent.
Verification requirementssourced · official docs · 2026-10-28
On Branding, enter app name, support email, and developer contact. On Audience, pick External and keep Testing status. On Data Access, add scopes.
https://console.cloud.google.com/auth/overviewprobed
Developer portal: the Google Auth Platform console page redirects to Google sign-in, so you need a Google account.
https://console.cloud.google.com/auth/overviewHEAD returned 302 to accounts.google.com/ServiceLogin?service=cloudconsole.
probed · probe · 2026-10-28
sourced
You verify and publish branding on the Branding page before requesting data access verification in the Verification Center, where you declare scopes, add up to three documentation links, and pick a permitted application type.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
In Testing status, up to 100 test users can connect, and test user authorizations expire 7 days after consent unless only basic sign-in scopes are requested.
Manage app audiencesourced · official docs · 2026-10-28
On Clients, add your exact HTTPS callback URL or the Composio redirect URI. Request access_type=offline and use PKCE with S256.
https://console.cloud.google.com/auth/clientsprobed
Google's OpenID configuration lists the authorize, token, and revoke endpoints and supports PKCE with S256.
https://accounts.google.com/.well-known/openid-configurationHTTP 200. code_challenge_methods_supported: plain, S256. authorization_endpoint https://accounts.google.com/o/oauth2/v2/auth.
probed · probe · 2026-10-28
sourced
Reasons to bring your own app: your branding on consent, custom scopes, dedicated rate limit quota, and polling faster than the managed 15 minute minimum. You add the redirect URI shown in the Composio dashboard to your Google client.
Custom app vs managed appsourced · composio docs · 2026-10-28
Add up to 100 test users. Users may grant only Gmail or only Calendar. Turn off features whose scopes are missing.
sourced
In Testing status, up to 100 test users can connect, and test user authorizations expire 7 days after consent unless only basic sign-in scopes are requested.
Manage app audiencesourced · official docs · 2026-10-28
sourced
External apps in Testing status get refresh tokens that expire in 7 days; there is a limit of 100 refresh tokens per Google Account per client; Gmail-scoped refresh tokens stop working when the user changes password; admin restrictions return admin_policy_enforced.
Using OAuth 2.0 to Access Google APIssourced · official docs · 2026-10-28
sourced
When an app requests more than one non-sign-in scope, users can grant some and decline others, for example Calendar but not Gmail, so apps must check granted scopes.
How to handle granular permissionssourced · official docs · 2026-10-28
Limited beta
On Audience, click Publish app. Unverified apps show a warning. Skip this if you can wait.
sourced
Apps showing the unverified app screen are limited to 100 new users in total over the project's lifetime, and the cap cannot be reset.
Manage app audiencesourced · official docs · 2026-10-28
sourced
An unverified app with sensitive or restricted scopes shows an unverified app screen, is limited to 100 new users until verified, and verification might take several months.
Unverified appssourced · official docs · 2026-10-28
Production
Publish the homepage, privacy policy, and Limited Use statement. Verify the domain in Search Console.
https://search.google.com/search-consolesourced
Verification needs a homepage on a domain you own, a privacy policy on the same domain linked from homepage and consent screen, and every authorized domain verified in Search Console by a project Owner or Editor.
Verification requirementssourced · official docs · 2026-10-28
sourced
Workspace API data may not be used to train AI or ML models beyond the user's own personalized model, and you must post an affirmative Limited Use statement in the app or on your website.
Google Workspace API User Data and Developer Policysourced · official policy · 2026-10-28
On Branding, click Verify Branding, then Publish branding. Publish a compliant result within 7 days or verify again.
https://console.cloud.google.com/auth/brandingsourced
You verify and publish branding on the Branding page before requesting data access verification in the Verification Center, where you declare scopes, add up to three documentation links, and pick a permitted application type.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
Google's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
Google's sensitive scope page says sensitive verification typically takes 3 to 5 business days, and a compliant brand verification result must be published within 7 days.
Sensitive scope verificationConflicts with the 10 business days in the FAQ (e7).
sourced · official docs · 2026-10-28
Use the drafts below. Upload the video to YouTube as Unlisted.
sourced
The demo video must be on YouTube as Unlisted and show the English consent flow, the app name, the OAuth client ID in the address bar, and the feature behind each sensitive and restricted scope, for each client.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
You must request the narrowest scopes and justify each, including why narrower scopes will not work. If user data trains AI models, the video must show explicit user consent.
Verification requirementssourced · official docs · 2026-10-28
In the Verification Center, declare all scopes and add up to three documentation links, the video link, justifications, and your application type.
https://console.cloud.google.com/auth/verificationsourced
You verify and publish branding on the Branding page before requesting data access verification in the Verification Center, where you declare scopes, add up to three documentation links, and pick a permitted application type.
Restricted scope verificationsourced · official docs · 2026-10-28
sourced
The demo video must be on YouTube as Unlisted and show the English consent flow, the app name, the OAuth client ID in the address bar, and the feature behind each sensitive and restricted scope, for each client.
Restricted scope verificationsourced · official docs · 2026-10-28
Reply fast. Google says timing depends on your response speed. If nothing arrives for weeks, reply on the verification thread.
sourced
Google's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
A developer reports a 2026 verification request for the sensitive calendar.events scope waiting about 4 months with no Trust and Safety email. Related thread titles mention waits of 50 or more days.
OAuth verification pending since 22 Apr 2026One thread read in full. The 50 day figure comes only from a related thread title. No staff answer shown.
sourced · community · 2026-10-28
sourced
An unverified app with sensitive or restricted scopes shows an unverified app screen, is limited to 100 new users until verified, and verification might take several months.
Unverified appssourced · official docs · 2026-10-28
Get quotes from two or three authorized labs. Fix every critical and high finding and send the Letter of Assessment to Google.
https://appdefensealliance.dev/casasourced
Restricted scope apps must pass an annual security assessment at assurance level AL1 or AL2, assigned by risk, as the final step after other requirements, started when Trust and Safety contacts you.
Security AssessmentThe App Defense Alliance tiering page (https://appdefensealliance.dev/casa/casa-tiering) also lists AL1 and AL2 with yearly revalidation.
sourced · official docs · 2026-10-28
sourced
Google does not charge for the security assessment. Independent CASA-authorized assessors do it, and you agree the price with them directly.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
Your assessment tier depends on users per type of data; some apps are in scope for a free Tier 2 assessment; Tier 3 assessors need read-only cloud access; critical and high findings must be fixed to get a Letter of Assessment; Scout Suite can preview results.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
A vendor-published comparison lists CASA Tier 2 at about $540 to $1,800 and Tier 3 at about $4,500 to $8,000 or more. Turnaround is 1 to 4 weeks for Tier 2, 2 to 6 weeks for Tier 3, and some large labs quote 4 to 8 weeks.
CASA Tier 2 and Tier 3 providers and pricingLabeled as of 2024. Published by Switch Labs, a vendor that is not one of the listed labs. Uses older Tier 2/3 names, not AL1/AL2.
sourced · community · 2026-10-28
sourced
A developer reported a Tier 2 CASA via PwC at no charge in late 2023, with the lab requiring a Fortify scan of uploaded source code.
Crack Google's CASA ReviewGoogle Drive scopes, not Gmail. One person's report.
sourced · community · 2026-10-28
Create a custom auth config with your client ID and secret. Ask existing users to reconnect. Set a 10 month reverification reminder.
sourced
A custom auth config applies to new connections only; existing users must reconnect or be imported. With managed auth, Google's consent screen names Composio.
White-labeling authenticationsourced · composio docs · 2026-10-28
sourced
Restricted scope apps must reverify and be reassessed at least every 12 months after the assessor's Letter of Assessment approval date. Google emails project Owners and Editors when it is due.
Restricted scope verificationsourced · official docs · 2026-10-28
Blockers
Test users must reconnect weekly.
Cause: In Testing status, grants and refresh tokens expire 7 days after consent.
Fix: Accept it in development, or publish unverified.
sourced
In Testing status, up to 100 test users can connect, and test user authorizations expire 7 days after consent unless only basic sign-in scopes are requested.
Manage app audiencesourced · official docs · 2026-10-28
sourced
External apps in Testing status get refresh tokens that expire in 7 days; there is a limit of 100 refresh tokens per Google Account per client; Gmail-scoped refresh tokens stop working when the user changes password; admin restrictions return admin_policy_enforced.
Using OAuth 2.0 to Access Google APIssourced · official docs · 2026-10-28
New users hit the user cap error.
Cause: Unverified apps get 100 new users per project lifetime.
Fix: Complete verification. Test in a separate project.
Help: Request verification in the Verification Center to appeal.
sourced
Apps showing the unverified app screen are limited to 100 new users in total over the project's lifetime, and the cap cannot be reset.
Manage app audiencesourced · official docs · 2026-10-28
Verification sits in review for weeks.
Cause: Review queues vary.
Fix: Complete every Verification Center section, then reply on the thread.
Help: Post on discuss.google.dev with your project number, never secrets.
sourced
Google's estimates are brand verification 2 to 3 business days, sensitive scope verification 10 business days, restricted scope verification 6 weeks, and these are not guaranteed.
OAuth verification FAQsourced · official docs · 2026-10-28
sourced
A developer reports a 2026 verification request for the sensitive calendar.events scope waiting about 4 months with no Trust and Safety email. Related thread titles mention waits of 50 or more days.
OAuth verification pending since 22 Apr 2026One thread read in full. The 50 day figure comes only from a related thread title. No staff answer shown.
sourced · community · 2026-10-28
Reviewer rejects a scope or asks why a narrower one fails.
Cause: Your video or justification does not show a feature that needs it.
Fix: Drop the scope, or show the feature and explain why narrower scopes fail.
sourced
You must request the narrowest scopes and justify each, including why narrower scopes will not work. If user data trains AI models, the video must show explicit user consent.
Verification requirementssourced · official docs · 2026-10-28
sourced
The demo video must be on YouTube as Unlisted and show the English consent flow, the app name, the OAuth client ID in the address bar, and the feature behind each sensitive and restricted scope, for each client.
Restricted scope verificationsourced · official docs · 2026-10-28
Business users get access blocked or admin_policy_enforced.
Cause: Their Workspace admin restricted Gmail or Calendar or blocks unconfigured apps.
Fix: Ask the admin to mark your client ID Trusted or Specific Google data in API controls.
sourced
Workspace admins can set apps to Trusted, Specific Google data, Limited, or Blocked, set Gmail or Calendar to Restricted, and block unconfigured third-party apps.
Control which third-party and internal apps access Google Workspace datasourced · official docs · 2026-10-28
sourced
External apps in Testing status get refresh tokens that expire in 7 days; there is a limit of 100 refresh tokens per Google Account per client; Gmail-scoped refresh tokens stop working when the user changes password; admin restrictions return admin_policy_enforced.
Using OAuth 2.0 to Access Google APIssourced · official docs · 2026-10-28
Users granted Calendar but not Gmail.
Cause: Granular consent lets users untick scopes.
Fix: Check granted scopes after the callback. Ask again when the user tries that feature.
sourced
When an app requests more than one non-sign-in scope, users can grant some and decline others, for example Calendar but not Gmail, so apps must check granted scopes.
How to handle granular permissionssourced · official docs · 2026-10-28
The CASA report lists critical or high findings.
Cause: The lab signs off only after you fix them.
Fix: Fix and rescan. Run Scout Suite or a similar free scanner first.
Help: Your CASA lab's support, then the verification thread.
sourced
Your assessment tier depends on users per type of data; some apps are in scope for a free Tier 2 assessment; Tier 3 assessors need read-only cloud access; critical and high findings must be fixed to get a Letter of Assessment; Scout Suite can preview results.
OAuth verification FAQsourced · official docs · 2026-10-28
Agent and you
Agent did
- Read Google's scope lists, verification docs, security assessment page, and user data policies.
- Probed Google's OpenID configuration: PKCE with S256 is supported.
- Probed the authorize endpoint with a fake client ID: it returns invalid_client.
- Checked the Cloud console: it redirects to Google sign-in.
- Checked Composio docs: Gmail and Calendar have managed OAuth.
Agent can do
- Map features to the narrowest scopes.
- Draft justifications, the video shot list, and privacy policy sections.
- Fill the console pages in a browser after you sign in.
- Draft quote requests to CASA labs.
You must do
- Sign in to Google Cloud and own the project.
- Verify your domain in Search Console (DNS change).
- Publish the homepage, privacy policy, and Limited Use statement.
- Record and upload the demo video.
- Choose and pay a CASA lab and fix findings.
- Answer review emails and renew yearly.
Drafts
Justification for gmail.modify (restricted) draft · scope justification
[App name] is an email assistant. Each user connects their own Gmail account. We request https://www.googleapis.com/auth/gmail.modify to: 1. Read new messages to summarize threads and suggest replies. 2. Save suggested replies as drafts for the user to review. 3. Apply labels and archive messages the user files. Why narrower scopes do not work: - gmail.readonly cannot create drafts or change labels. - gmail.compose cannot read threads. - gmail.metadata gives headers only. - gmail.send sends without user review. We never delete messages. We use content only to serve the connected user. We do not use it for ads, sell it, or train generalized AI models on it. [Edit: describe storage, retention, and deletion on disconnect.]
Justification for calendar.events (sensitive) draft · scope justification
We request https://www.googleapis.com/auth/calendar.events to read events to propose meeting times, and to create or update events the user approves. calendar.readonly cannot create events. calendar.freebusy shows busy times only. We do not manage calendars or sharing, so we do not need the full calendar scope.
Demo video shot list for Google verification draft · demo video script
Length: 3 to 5 minutes. Language: English. Upload to YouTube as Unlisted. 1. Show your homepage URL and its privacy policy link. 2. Click Connect Google. Pause on the sign-in. 3. Zoom into the address bar so the client_id is readable. Show your app name. 4. Show and grant every requested scope. 5. gmail.modify: show a thread summary, a reply saved as a Gmail draft, and a label applied. 6. calendar.events: show events read from Calendar, then create one and show it in Google Calendar. 7. Repeat consent for each OAuth client (web, mobile). 8. Show disconnect and data deletion. 9. If you train AI models on user data, show that consent screen. Otherwise say on screen that you do not.
Privacy policy checklist for Gmail and Calendar data draft · privacy policy checklist
- Same domain as your homepage, linked from the homepage and consent screen (same URL). - Names the data: messages, drafts, labels, calendar events. - Says you use it only for user-facing features. - Says how, how long, and where you store it. - Names subprocessors (model provider, cloud host) and why. - Says how users revoke access and request deletion, and how fast you delete. - States humans do not read the data except with consent, for security, or by law. - States you do not use it for ads, sell it, or train generalized AI or ML models on it. - Includes a Limited Use statement in your own words: your use and transfer of data from Google APIs follows the Google API Services User Data Policy, including its Limited Use requirements. Link the policy (https://developers.google.com/terms/api-services-user-data-policy). - Get legal review first.
Quote request to a CASA lab draft · support email
Hello, We need a CASA assessment for restricted Gmail scopes (gmail.modify). Our web app runs on [cloud provider]. Expected users: [number]. Please share your price for our assurance level, time to Letter of Assessment, required scans or access, and yearly reassessment price. Thanks, [Name]
Open questions
How long does sensitive scope review take?
Google says 3 to 5 business days on one page and 10 on the FAQ. Developers report months-long stalls in 2026.
To resolve: Track your dates and update this guide after a real attempt.
Which Calendar scopes are sensitive or restricted?
No official per-scope list was found, and the restricted list names no Calendar scope.
To resolve: Add the scopes on Data Access in a test project and read the console labels.
What does CASA cost in 2026, and is free Tier 2 still offered?
Google mentions free Tier 2 for some apps. Lab prices come from a 2024 vendor comparison.
To resolve: Get lab quotes once Google assigns your assurance level.
Does the 6 week estimate include the security assessment?
The restricted scope page calls the assessment a large part of a several-week process.
To resolve: Ask on the verification thread.
Can you skip CASA if mail data never reaches your server?
Google requires it when restricted data passes through a third-party server, as with most agent backends.
To resolve: Assume you need it. Confirm with the reviewer if fully client-side.
Sources
- Choose Gmail API scopes official docs · 2026-10-28
- Restricted scope verification official docs · 2026-10-28
- OAuth verification FAQ official docs · 2026-10-28
- Sensitive scope verification official docs · 2026-10-28
- Security Assessment official docs · 2026-10-28
- Manage app audience official docs · 2026-10-28
- Using OAuth 2.0 to Access Google APIs official docs · 2026-10-28
- Verification requirements official docs · 2026-10-28
- Google API Services User Data Policy official policy · 2026-10-28
- Google Workspace API User Data and Developer Policy official policy · 2026-10-28
- Control which third-party and internal apps access Google Workspace data official docs · 2026-10-28
- How to handle granular permissions official docs · 2026-10-28
- Composio managed auth composio docs · 2026-10-28
- White-labeling authentication composio docs · 2026-10-28
- Custom app vs managed app composio docs · 2026-10-28
- https://accounts.google.com/.well-known/openid-configuration probe · 2026-10-28
- https://accounts.google.com/o/oauth2/v2/auth?client_id=oauth-guide-probe-invalid&response_type=code&redirect_uri=https://example.com/cb&scope=openid probe · 2026-10-28
- https://console.cloud.google.com/auth/overview probe · 2026-10-28
- OAuth verification pending since 22 Apr 2026 community · 2026-10-28
- CASA Tier 2 and Tier 3 providers and pricing community · 2026-10-28
- Crack Google's CASA Review community · 2026-10-28
- Unverified apps official docs · 2026-10-28
- Restricted scopes list official docs · 2026-10-28
Verification changes
Corrected the e27 probe URL to include response_type, redirect_uri, and scope.
Re-running the recorded URL with only client_id returns invalid_request, not invalid_client. The full request returns invalid_client as claimed. 2026-10-28
Narrowed e29 from '50 days to over 4 months' to one report of about 4 months plus a thread title citing 50 or more days.
The thread was submitted 22 April and posted late August, so about 4 months, not over. The 50 day figure is only a title of a linked thread. 2026-10-28
Changed CASA lab time from '1 to 4 weeks, developers report' to '1 to 8 weeks depending on lab and tier', in production notes, step s12, and e30.
The cited page is a vendor comparison, not developer reports. Its 1 to 4 weeks covers Tier 2 only; Tier 3 runs to 6 weeks and some labs quote 4 to 8 weeks. 2026-10-28
Added e35 (Google's official restricted scope list) as a second official source for the tier 4 decision and for Calendar not being restricted. Reworded the verdict summary so it no longer states Calendar scopes are sensitive as fact.
The list confirms gmail.compose and the other mail scopes are restricted and names no Calendar scope. No official page labels individual Calendar scopes as sensitive, so that part stays inferred (e33). 2026-10-28
Composio note: replaced "Existing users must reconnect." with the switching rule as Composio states it, including importing credentials.
A reviewer cross-checked Composio's docs: existing users stay on the old connection until they re-authenticate or you import their credentials, so "must reconnect" overstated it. 2026-10-28