SSO
Google
API integration
Ship SSO features without building the integration. Full Google API access via Proxy, normalized data through Unified APIs, and 110+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with Google
Common scenarios for SaaS companies building Google integrations for their customers.
Sync employee directories for automated provisioning
SaaS companies building HR, IT management, or security products need to pull the full Google Workspace user directory to auto-populate employee lists, detect new hires, and trigger onboarding workflows — without asking every employee to authenticate individually.
Read and send emails on behalf of users
Sales engagement, CRM, and recruiting platforms need to send emails directly from a user's Gmail account for better deliverability and thread continuity, while also monitoring incoming replies to trigger automated sequences or log correspondence.
Schedule meetings with calendar availability lookups
Scheduling, ATS, and customer success tools need to read a user's Google Calendar availability, create events with Google Meet links, and keep both sides in sync — enabling features like candidate interview booking or customer meeting scheduling directly from the SaaS UI.
Store and manage files in Google Drive programmatically
Contract management, project management, and compliance SaaS products need to upload documents to Google Drive, organize them into shared drives, and set granular permissions — keeping Google Drive as the system of record without manual file shuffling.
Enable Google SSO and workspace-level app management
Security and identity platforms need to enumerate apps installed across a Google Workspace, audit user-to-app assignments, and enforce access policies — requiring deep integration with Google's SSO and admin APIs.
What You Can Build
Ship these features with Truto + Google
Concrete product features your team can ship faster by leveraging Truto’s Google integration instead of building from scratch.
One-click interview scheduling with Meet links
Let recruiters check interviewer availability from Google Calendar, book a slot, and auto-generate a Google Meet link — all without leaving your product.
Automated email sequence engine via Gmail
Send personalized drip campaigns directly from a sales rep's Gmail account so emails land in their Sent folder and replies are tracked in real time.
Company-wide employee directory sync
Pull every user, group, and role from Google Workspace's directory to auto-populate your platform's org chart, permission model, or onboarding pipeline.
Executed document auto-upload to Shared Drives
When a contract or report is finalized in your app, automatically push the PDF to the correct Google Shared Drive with the right permissions already set.
Unified search across Gmail, Drive, and Calendar
Surface relevant emails, files, and events from a user's Google Workspace in a single search bar embedded in your product.
Google Workspace SSO app audit dashboard
Enumerate all third-party apps connected to a customer's Google Workspace and display user-to-app assignments for security review and compliance reporting.
SuperAI
Google AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_google_files
Retrieves the user's files stored in Google Drive. This method allows filtering results using the q parameter, which accepts search queries to find specific files based on name, type, ownership, and other metadata. The response includes key file attributes such as id, name, mimeType, createdTime, modifiedTime, owners, driveId, shared, and permissions.
get_single_google_file_by_id
Retrieves metadata or content from a single file on the user's Google Drive. It always requires the ID to fetch.
list_all_google_folders
List all Google Drive folders. Returns folder objects including id, name, and mimeType, filtered automatically to items of type folder.
get_single_google_folder_by_id
Get a single Google Drive folder by id. Returns the full folder metadata including id, name, mimeType, and parents. Required: id.
list_all_google_drive
List all shared drives available in Google Drive. Returns an array of drive objects including their metadata.
get_single_google_drive_by_id
Get a single Google Drive shared drive by id. Returns the full drive object including its metadata. Required: id.
list_all_google_search
Retrieves the user's files stored in Google Drive. This method allows filtering results using the q parameter, which accepts search queries to find specific files or folders based on name, type, ownership, and other metadata. The response includes key file attributes such as id, name, mimeType, createdTime, modifiedTime, owners, parents, driveId, shared, and permissions.
get_single_google_file_export_by_id
Export a Google Drive file to a specified MIME type. Returns the exported file content as a binary stream. Required: id (the Drive file ID), mimeType (the target export format, e.g. "application/pdf").
list_all_google_drive_items
List files and folders in Google Drive, including items from all shared drives. Returns an array of file metadata objects.
get_single_google_drive_item_by_id
Get a single Google Drive file or folder by id. Returns the full file metadata object. Required: id.
list_all_google_user_info
Retrieves basic profile information about the authenticated user in Google Calendar. The response includes essential details such as the user's unique identifier (sub), full name (name), first name (given_name), last name (family_name), profile picture URL (picture), and email address (email).
get_single_google_form_by_id
Get a single Google Form by id. Returns the full form object including its structure, title, and items. Required: id.
list_all_google_forms
List all Google Forms accessible in Google Drive. Returns an array of file objects representing forms, including id, name, and mimeType.
list_all_google_responses
List all responses submitted to a specific Google Form. Returns an array of form response objects. Required: form_id.
get_single_google_response_by_id
Get a single response submitted to a Google Form by its id. Returns the full response object. Required: form_id and id.
list_all_google_conference_records
List Google Meet conference records. Returns a collection of conferenceRecords objects from the Google Meet API.
get_single_google_conference_record_by_id
Get a single Google Meet conference record by id. Returns the conference record object. Required: id.
list_all_google_conference_record_transcripts
List transcripts for a Google Meet conference record. Returns a collection of transcript objects associated with the specified conference record. Required: conference_record_id.
get_single_google_conference_record_transcript_by_id
Get a single transcript from a Google Meet conference record by id. Returns the transcript object for the specified conference record and transcript. Required: conference_record_id and id.
list_all_google_conference_record_transcript_entries
List transcript entries for a specific Google Meet conference record transcript. Returns a collection of transcript entries. Required: conference_record_id, conference_record__transcript_id.
get_single_google_conference_record_transcript_entry_by_id
Get a single transcript entry from a Google Meet conference record transcript by id. Required: conference_record_id, conference_record__transcript_id, id.
list_all_google_conference_record_participants
List participants for a specific Google Meet conference record. Returns an array of participant objects. Required: conference_record_id.
get_single_google_conference_record_participant_by_id
Get a single participant from a Google Meet conference record by id. Returns the participant object. Required: conference_record_id and id.
list_all_google_documents
List Google Drive documents (Google Docs files). Returns an array of file objects including id, name, and mimeType, filtered to documents only.
get_single_google_document_by_id
Get a single Google Drive document by id. Returns the full file metadata object. Required: id.
create_a_google_document
Create a new Google Docs document. Returns the created document object including its document id and title. Required: title.
list_all_google_document_content
Get a Google document by page_id. Returns the full document object including its body content, title, and revision metadata. Required: page_id.
google_document_content_batch_update
Apply one or more structured updates to a Google document identified by document_id. Returns the document id and an array of replies corresponding to each applied request. Required: document_id and requests.
list_all_google_calendar_lists
List all entries on the Google Calendar list for a user. Returns an array of calendar list items including calendar ids and associated metadata. The user_id defaults to the authenticated user ('me').
get_single_google_calendar_list_by_id
Get a single entry from the Google Calendar list by id. Returns the calendar list entry details for the specified calendar. Requires id.
create_a_google_calendar_list
Add a calendar to the authenticated user's Google Calendar list. Returns the newly created calendar list entry.
update_a_google_calendar_list_by_id
Update an existing entry on the Google Calendar list by id. Returns the updated calendar list entry. Requires id.
delete_a_google_calendar_list_by_id
Delete a calendar entry from the Google Calendar list by id. Returns an empty response on success. Requires id.
google_calendar_lists_watch
Watch for changes to the Google Calendar list for a user. Returns a channel object that can be used to receive push notifications for calendar list changes.
get_single_google_calendar_by_id
Get metadata for a calendar by id in Google Calendar. Returns fields such as summary, description, timeZone, and location.
create_a_google_calendar
Create a secondary calendar with summary in Google Calendar. Returns the created calendar's id and other calendar details.
update_a_google_calendar_by_id
Update metadata for a calendar using id in Google Calendar. Returns updated calendar fields including etag for versioning.
delete_a_google_calendar_by_id
Delete a secondary calendar by id in Google Calendar. Returns an empty response body on success. Use calendars.clear for clearing events on primary calendars.
google_calendars_clear
Clear all events from the calendar identified by id in Google Calendar. This deletes all events associated with the specified calendar. The response is empty if successful.
list_all_google_events
List events in a Google Calendar. Returns a collection of event items for the specified calendar. Required: calendar_id.
create_a_google_event
Create a new event in a Google Calendar. Returns the created event object. Required: calendar_id.
get_single_google_event_by_id
Get a single Google Calendar event by id. Returns the full event object for the specified calendar and event. Required: calendar_id, id.
update_a_google_event_by_id
Partially update an existing Google Calendar event using a patch. Returns the updated event object. Required: calendar_id, id.
google_events_quick_add
Quickly create a Google Calendar event from a free-text description string. Returns the created event object. Required: calendar_id.
google_events_move
Move a Google Calendar event to a different calendar. Returns the updated event object reflecting its new calendar. Required: calendar_id, event_id.
delete_a_google_event_by_id
Delete a Google Calendar event by id. Returns an empty response on success. Required: calendar_id, id.
google_events_import
Import a Google Calendar event into the specified calendar, typically used to add an existing iCalendar event. Returns the imported event object. Required: calendar_id.
google_events_watch
Subscribe to push notifications for changes to Google Calendar events in a specific calendar. Returns a channel resource representing the watch subscription. Required: calendar_id.
list_all_google_event_instances
Get instances of a recurring event by calendar_id and id in Google Calendar. Returns event details including summary, start and end times, and status for each instance.
list_all_google_free_busy
Get free/busy information for a set of calendars in Google Calendar. Requires timeMin, timeMax, and items with calendar or group ids. Returns busy time ranges and any errors per calendar.
list_all_google_search_contacts
Get a list of contacts matching the query in Google Calendar. Requires query and readMask. Returns matched contacts with fields specified in readMask such as names, emailAddresses, phoneNumbers, and organizations.
get_single_google_search_contact_by_id
Get information about a specific contact by id in Google Calendar. Requires personFields parameter specifying which fields to return such as names, emailAddresses, phoneNumbers, and organizations.
delete_a_google_search_contact_by_id
Delete a contact person by id in Google Calendar. The response is empty if successful. Non-contact data will not be deleted. Mutate requests must be sent sequentially to avoid latency and failures.
list_all_google_other_contacts
Get a list of other contacts matching the query in Google Calendar. Requires query and readMask parameters. Returns matched contacts with fields emailAddresses, metadata, names, and phoneNumbers.
list_all_google_acl
Get the access control list rules for the calendar with calendar_id in Google Calendar. Returns items with ACL rules including kind, etag, and tokens for pagination or synchronization.
get_single_google_acl_by_id
Get an access control rule for a calendar in Google Calendar using calendar_id and id. Returns fields id and role representing the rule identifier and its access role.
delete_a_google_acl_by_id
Delete an access control rule for a calendar in Google Calendar. Requires calendar_id and id. Returns an empty response body on success.
update_a_google_acl_by_id
Update an access control rule for a calendar in Google Calendar using calendar_id and id. Returns the updated ACL resource including scope and role.
create_a_google_acl
Create an access control rule for a calendar in Google Calendar using calendar_id. Returns the created ACL rule including role and scope details.
google_acl_watch
Watch for changes to ACL resources for calendar identified by calendar_id in Google Calendar. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.
google_channels_stop
Stop watching resources through a channel in Google Calendar. Returns an empty response on success.
list_all_google_colors
Get color definitions for calendars and events in Google Calendar. Returns calendar and event color IDs with their background and foreground color codes.
list_all_google_settings
Get all user settings for the authenticated user in Google Calendar. Returns settings including id and value fields. Supports maxResults, pageToken, and syncToken for pagination and incremental sync.
get_single_google_setting_by_id
Get a single user setting by id in Google Calendar. Returns the setting's id and value.
google_settings_watch
Watch for changes to Settings resources in Google Calendar. Requires a request body with id, type, and address to create a notification channel. Returns channel id, resourceId, resourceUri, token, and expiration timestamp.
get_single_google_customer_by_id
Get a Google Admin Directory customer by id. Returns the customer object from the Admin Directory API. Required: id.
list_all_google_licenses
List Google Workspace product licenses assigned to users for a given product. Returns user license assignment records. Required: product_id.
list_all_google_usage_reports
List Google Admin usage reports for all users on a specific date. Returns usage activity records per user for the given date. Required: date (in YYYY-MM-DD format).
list_all_google_users
List all Google Workspace users in the directory. Returns a collection of user objects including id, primaryEmail, and name.
get_single_google_user_by_id
Get a single Google Workspace user by id. Returns the full user object including id, primaryEmail, name, and associated account details. Required: id.
create_a_google_user
Create a new Google Workspace user in the directory. Returns the created user object including id and primaryEmail. Required: primaryEmail, name (givenName and familyName), and password.
update_a_google_user_by_id
Update an existing Google Workspace user by id, replacing the resource with the supplied fields. Returns the updated user object including id and primaryEmail. Required: id.
delete_a_google_user_by_id
Delete a Google Workspace user by id. Returns an empty 204 response on success. Required: id.
list_all_google_groups
List groups in the Google Directory. Returns an array of group objects for the customer.
get_single_google_group_by_id
Get a single Google Directory group by id. Returns the full group object. Required: id.
create_a_google_oauth_token
Exchange an authorization code or refresh token for a Google OAuth access token via the Google OAuth2 token endpoint. Returns: access_token, token_type, expires_in, and optionally refresh_token. Required: grant_type, client_id, client_secret, and either code with redirect_uri (for authorization_code grant) or refresh_token (for refresh_token grant).
list_all_google_roles
List all roles defined in the Google Admin Directory for the authenticated customer. Returns an array of role objects from the directory.
list_all_google_role_assignments
List all role assignments for your Google Admin Directory customer account. Returns a collection of role assignment items from the Google Admin SDK.
list_all_google_tokens
List all OAuth tokens issued by a Google user to third-party applications. Returns a collection of token items associated with the user. Required: user_id.
list_all_google_accounts
List all Google Analytics accounts accessible to the authenticated user. Returns a collection of account objects including their id, name, and related metadata.
list_all_google_group_members
List all members of a Google group. Returns member records for the specified group. Required: group_id.
get_single_google_group_member_by_id
Get a single member of a Google group by id. Returns the member record for the specified group and member. Required: group_id, id.
create_a_google_group_member
Add a new member to a Google group. Returns the created member record. Required: group_id.
update_a_google_group_member_by_id
Update an existing member of a Google group by id. Returns the updated member record. Required: group_id, id.
delete_a_google_group_member_by_id
Remove a member from a Google group by id. Returns an empty response on success. Required: group_id, id.
list_all_google_account_users
List Google Analytics account user links (entityUserLinks) for a specific account. Returns a list of items representing user-to-account associations. Required: account_id.
list_all_google_messages
List Gmail messages in the authenticated user's mailbox. Returns: id, threadId for each matched message.
get_single_google_message_by_id
Get a single Gmail message by id. Returns the full message resource. Required: id.
create_a_google_message
Send a Gmail message on behalf of the authenticated user. Returns the sent message resource including its id and threadId.
delete_a_google_message_by_id
Permanently delete a Gmail message by id. Returns an empty response on success. Required: id.
update_a_google_message_by_id
Modify label assignments on a Gmail message by id. Returns the updated message resource. Required: id.
list_all_google_threads
List Gmail threads for the authenticated user. Returns a list of thread objects including id and snippet.
get_single_google_thread_by_id
Get a single Gmail thread by id. Returns the full thread object including its messages and metadata. Required: id.
update_a_google_thread_by_id
Modify labels on a Gmail thread by id. Returns the updated thread object. Required: id.
delete_a_google_thread_by_id
Permanently delete a Gmail thread by id. Returns an empty response on success. Required: id.
create_a_google_batch
Send a batch of Google Gmail API requests in a single HTTP call using a raw-format body, reducing the number of round-trips. Returns a multipart response containing the individual result for each bundled request.
list_all_google_batch
Send a batch of Google Gmail API requests in a single HTTP call using a JSON-format body, reducing the number of round-trips. Returns a combined response containing the individual result for each bundled request.
list_all_google_labels
List all labels in the user's mailbox in Gmail. Requires user_id. Returns label id, name, messageListVisibility, labelListVisibility, and type for each label.
get_single_google_label_by_id
Get the specified label by id for user_id in Gmail. Returns label details including id, name, message list visibility, label list visibility, type, and color.
create_a_google_label
Create a new label for the user identified by user_id in Gmail. Returns the created label including id, name, messageListVisibility, and labelListVisibility fields.
delete_a_google_label_by_id
Delete a label by id for the user_id in Gmail. This operation permanently removes the label and disassociates it from all messages and threads.
update_a_google_label_by_id
Patch the specified label for user_id and id in Gmail. Returns the updated label including its id, name, message list visibility, label list visibility, type, and color properties.
get_single_google_attachment_by_id
Get a specific attachment from a Gmail message by attachment id. Returns the attachment payload including its base64url-encoded data and size. Required: message_id and id. user_id defaults to "me" (the authenticated user).
list_all_google_permissions
List permissions for a Google Drive file. Returns: id, role, type, emailAddress, domain, allowFileDiscovery, and permissionDetails for each permission entry. Required: file_id.
list_all_google_drive_labels
List Google Drive labels available in the account. Returns a collection of label objects from the Drive Labels API with full label view details.
list_all_google_file_labels
List labels applied to a specific Google Drive file. Returns an array of labels associated with the file. Required: file_id.
list_all_google_org_units
List Google organizational units for the customer. Returns an array of organizationUnits objects from the Google Admin Directory API.
list_all_google_people
List people from the Google directory via the People API. Returns a collection of people objects from the caller's domain directory.
list_all_google_comments
List all comments on a Google Drive file. Returns: id, content, author, createdTime, modifiedTime, resolved, and replies for each comment. Required: file_id.
get_single_google_comment_by_id
Get a single comment on a Google Drive file by id. Returns: id, content, author, createdTime, modifiedTime, resolved, anchor, htmlContent, and replies. Required: file_id, id.
list_all_google_revisions
List all revisions for a Google Drive file. Returns a collection of revision objects for the specified file. Required: file_id.
get_single_google_revision_by_id
Get a single revision of a Google Drive file by revision id. Returns the full revision object for the specified file and revision. Required: file_id and id.
Why Truto
Why use Truto’s MCP server for Google
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Google
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified HRIS API
Unified Knowledge Base API
Unified Emails API
Attachments
Attachments are the files associated with an email.
Emails
An email is a digital message sent and received electronically over the Internet. It typically contains a subject, sender, recipients, body content, and sometimes attachments.
Folders
The folder is a container used to organize and manage email messages.
Unified User Directory API
Unified Conferencing API
Attendees
The attendees represent the individuals who join the meeting.
Meetings
The meeting represents the actual meeting or video call conducted on the platform.
Transcript Entries
The transcript entries represent the list of sentences in the meeting transcript.
Transcripts
The transcript represents the written text of the spoken dialogue during the meeting.
Unified Calendar API
Unified File Storage API
Comments
Comments represent discussion messages, review notes, annotations, or collaboration messages attached to a drive item in a file storage system.
Drive-Items
Drive Items are the files and folders present in a file storage system. These items are usually part of a Drive. You can differentiate between files and folders using the type attribute.
Drives
Drives is a collection of files and folders. They could have multiple Drive Items within them. Users could have multiple Drives accessible to them in a file storage system.
Permissions
Permissions can answer your questions around which User has access to do what on a Drive Item or a Drive.
Tags
Represents the tags in a file storage system
Version History
Version History represents file revisions, file versions, or historical file states attached to a drive item in a file storage system.
Unified Single Sign-On API
Unified Search API
Search
Search endpoint for all the apps.
How It Works
From zero to integrated
Go live with Google in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Google account
Use Truto’s frontend SDK to connect your customer’s Google account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Google
Truto’s Proxy API is a 1-to-1 mapping of the Google API. You call us, we call Google, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Google’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Google on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for Google integrations through Truto?
Google uses OAuth 2.0 for user-level authentication. Truto handles the full OAuth flow — token acquisition, refresh, and scope management — so your users just click 'Connect Google' and you receive a managed credential. For admin-wide access (e.g., pulling the entire company directory), Google also supports service account delegation, which Truto can manage on your behalf.
Which Google APIs map to Truto's Unified APIs?
Google Calendar maps to the Unified Calendar API (Events, Calendars, Availability). Gmail maps to the Unified Emails API (Emails, Attachments, Folders). Google Drive maps to the Unified File Storage API (Drive-Items, Drives, Permissions). Google Admin Directory maps to the Unified User Directory API and Unified HRIS API (Users, Groups, Roles). Google Meet maps to the Unified Conferencing API (Meetings, Transcripts). Google SSO data maps to the Unified Single Sign-On API.
How does Truto handle Google API rate limits?
Google enforces per-user and per-project rate limits that vary by API (e.g., Gmail allows ~250 quota units per second per user). Truto manages rate limiting, automatic retries with exponential backoff, and pagination transparently so your application doesn't need to implement this logic directly.
Can I read and write data, or is the integration read-only?
Truto supports both read and write operations where the underlying Google API allows it. For example, you can create calendar events, send emails, upload files to Drive, and create users in the directory — all through the corresponding Unified APIs.
What happens if specific tools I need aren't available yet?
Google integration tools are built on request. If you need a specific endpoint or data model that isn't yet covered, Truto's team will build and ship it for you — typically with fast turnaround. You can also use Truto's proxy mode to call any Google API endpoint directly while still benefiting from Truto's auth and token management.
How fresh is the data from Google APIs?
Data freshness depends on your polling interval or webhook configuration. Google supports push notifications for several APIs (Calendar, Gmail, Drive), enabling near-real-time sync. Truto can orchestrate these webhooks so your application receives changes as they happen rather than relying solely on periodic polling.
From the Blog
Google integration guides
Deep dives, architecture guides, and practical tutorials for building Google integrations.
Get Google integrated into your app
Our team understands what it takes to make a Google integration successful. A short, crisp 30 minute call with folks who understand the problem.
Talk to us