Google Workspace integration

Google Sheets, Gmail, Calendar – spreadsheets, email, drafts, scheduling

Help CentreConnectors

Overview

Google Workspace is the umbrella for Gmail, Calendar, Drive, Sheets, and the rest of Google's productivity suite. The Automize Google Workspace connector covers the most common automation surface – read/send email, list/create events, read and update Sheets, list Drive files, manage Docs and Slides metadata.

  • Regions: Google Workspace is global. No region selector – connector talks to googleapis.com. Data residency for Google Workspace itself is set at the tenant level via Google Workspace admin console.
  • Plans: Any Google account – personal (gmail.com), Workspace (custom domain), Cloud Identity. Some endpoints (Admin SDK, Vault, etc.) need a Workspace plan, not personal.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. In Google Cloud Console, create a new project (or pick an existing one).
  2. Enable the APIs you need: Gmail, Google Calendar, Google Drive, Google Sheets, Google Docs, Google Slides.
  3. Go to OAuth consent screen, configure (External for personal Gmail, Internal for your Workspace domain), add the scopes listed below.
  4. Go to Credentials → Create OAuth client ID → Application type: Web. Set the Authorized redirect URI to the one in the Automize Google Workspace connector dialog.
  5. Copy Client ID + Client Secret.
  6. In Automize, open Settings → Connectors → Google Workspace → Add connection. Paste credentials, click Connect with Google, pick the account, approve scopes.

Scopes required:

  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.send
  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/spreadsheets
  • https://www.googleapis.com/auth/documents
  • https://www.googleapis.com/auth/presentations

Find your credentials at https://console.cloud.google.com/apis/credentials.


Rate limits

Each Google service has its own quota – typically 250 req/sec/user for Gmail, 600/min/user for Calendar, 300 read + 300 write/min for Drive, 60 read + 60 write/min/user for Sheets. The connector reads quotaExceeded / 429 responses and retries with exponential backoff. Heavy reads should use the Drive change feed instead of polling.


Data model

Each service is a distinct API but shares a common identity (the
connected Google account).

    Gmail: Labels ─── Threads ─── Messages
    Calendar: Calendars ─── Events
    Drive: Files (with folder structure via parents[])
    Sheets: Spreadsheet ─── Sheet (tab) ─── range (A1 notation)
    Docs: Document ─── body elements
    Slides: Presentation ─── slides

Drive ↔ Sheets/Docs/Slides: every Sheet/Doc/Slide is a Drive File,
reachable by File ID either via Drive list endpoints or directly.

Available operations

26 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create EventGeneralCreate a new calendar event
Delete EventGeneralDelete a calendar event
Query Free/BusyGeneralQuery free/busy status for calendars
Get EventGeneralGet a calendar event by ID
List CalendarsGeneralList available calendars
List Calendar EventsGeneralList events from a calendar
Update EventGeneralUpdate an existing calendar event
Create DraftGeneralCreate an email draft (pass message.raw as base64url RFC 2822)
Delete DraftGeneralDelete a draft permanently
Get DraftGeneralGet a draft by ID
List DraftsGeneralList email drafts
Send DraftGeneralSend an existing draft by ID
Get EmailGeneralGet a full email message by ID
List LabelsGeneralList Gmail labels
List EmailsGeneralList email messages
Modify Message LabelsGeneralAdd or remove labels on an email message
Send EmailGeneralSend an email (raw RFC 2822 base64url encoded)
Trash EmailGeneralMove an email to trash
Untrash EmailGeneralRemove an email from trash
Append RowsGeneralAppend rows to a sheet
Batch Update SpreadsheetGeneralBatch update – add/delete sheets, format cells, merge, sort, etc.
Clear Sheet RangeGeneralClear values from a range
Create SpreadsheetGeneralCreate a new spreadsheet
Get SpreadsheetGeneralGet spreadsheet metadata
Read Sheet RangeGeneralRead values from a sheet range (e.g. Sheet1!A1:D10)
Write Sheet RangeGeneralWrite values to a sheet range

Operations

Create Event

Create a new calendar event

ParameterRequiredTypeDescription
Calendar ID calendar_idYestext
Title summaryYestext
Start (JSON) startYestext
End (JSON) endYestext
Description descriptionNotextarea
Location locationNotext
Attendees (JSON) attendeesNotextarea

Tips

  • Required: summary, start:{dateTime, timeZone}, end:{dateTime, timeZone}.
  • Set conferenceData.createRequest to auto-create a Meet link. Pass sendUpdates=all to email attendees.

Delete Event

Delete a calendar event

ParameterRequiredTypeDescription
Calendar ID calendar_idYestext
Event ID event_idYestext

Tips

  • Hard-deletes. sendUpdates=all notifies attendees of cancellation.

Query Free/Busy

Query free/busy status for calendars

ParameterRequiredTypeDescription
Start time (ISO 8601) timeMinYestext
End time (ISO 8601) timeMaxYestext
Calendar IDs (JSON) itemsNotextarea

Get Event

Get a calendar event by ID

ParameterRequiredTypeDescription
Calendar ID calendar_idYestext
Event ID event_idYestext

Tips

  • Returns event with attendees, recurrence rule, conferenceData (Meet link).

List Calendars

List available calendars

No input parameters.


List Calendar Events

List events from a calendar

ParameterRequiredTypeDescription
Calendar ID calendar_idYestext
Start (RFC3339) timeMinNotext
End (RFC3339) timeMaxNotext
Search text qNotext

Tips

  • calendar_id: primary for the user's main calendar, or another calendar ID.
  • timeMin/timeMax in RFC3339 for date-range filtering.
  • singleEvents=true expands recurring events into individual instances.

Update Event

Update an existing calendar event

ParameterRequiredTypeDescription
Calendar ID calendarIdYestext
Event ID eventIdYestext
Title summaryNotext
Description descriptionNotextarea
Start (JSON) startNotext
End (JSON) endNotext
Location locationNotext
Attendees (JSON) attendeesNotextarea
Calendar Id calendar_idYestext
Event Id event_idYestext

Tips

  • PATCH-style. Send sendUpdates=all to re-notify attendees.

Create Draft

Create an email draft (pass message.raw as base64url RFC 2822)

ParameterRequiredTypeDescription
Message (JSON) messageNotextarea

Delete Draft

Delete a draft permanently

ParameterRequiredTypeDescription
Draft ID draftIdYestext
Draft Id draft_idYestext

Get Draft

Get a draft by ID

ParameterRequiredTypeDescription
Draft ID draftIdYestext
Draft Id draft_idYestext

List Drafts

List email drafts

No input parameters.


Send Draft

Send an existing draft by ID

ParameterRequiredTypeDescription
Draft ID draftIdYestext
Id idNotext

Get Email

Get a full email message by ID

ParameterRequiredTypeDescription
Message ID message_idYestext

List Labels

List Gmail labels

No input parameters.


List Emails

List email messages

ParameterRequiredTypeDescription
Search query qNotext
Label IDs labelIdsNotext

Modify Message Labels

Add or remove labels on an email message

ParameterRequiredTypeDescription
Message ID messageIdYestext
Add label IDs (comma-separated) addLabelIdsNotext
Remove label IDs (comma-separated) removeLabelIdsNotext
Message Id message_idYestext

Tips

  • addLabelIds + removeLabelIds. Pass label IDs from List Labels.
  • Common: TRASH (delete), INBOX (move out of inbox), UNREAD/STARRED (markers).

Send Email

Send an email (raw RFC 2822 base64url encoded)

ParameterRequiredTypeDescription
Raw message (base64url) rawYestextarea

Trash Email

Move an email to trash

ParameterRequiredTypeDescription
Message ID message_idYestext

Untrash Email

Remove an email from trash

ParameterRequiredTypeDescription
Message ID messageIdYestext
Message Id message_idYestext

Append Rows

Append rows to a sheet

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheet_idYestext
Range rangeYestext
Values (2D JSON array) valuesYestextarea

Batch Update Spreadsheet

Batch update – add/delete sheets, format cells, merge, sort, etc.

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheetIdYestext
Requests (JSON) requestsYestextarea
Spreadsheet Id spreadsheet_idYestext

Clear Sheet Range

Clear values from a range

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheet_idYestext
Range rangeYestext

Create Spreadsheet

Create a new spreadsheet

ParameterRequiredTypeDescription
Properties propertiesNotext
Sheets sheetsNotext

Get Spreadsheet

Get spreadsheet metadata

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheet_idYestext

Read Sheet Range

Read values from a sheet range (e.g. Sheet1!A1:D10)

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheet_idYestext
Range (A1 notation) rangeYestext

Write Sheet Range

Write values to a sheet range

ParameterRequiredTypeDescription
Spreadsheet ID spreadsheet_idYestext
Range rangeYestext
Values (2D JSON array) valuesYestextarea

FAQ

Why does my Gmail Send fail with 400 Bad Request?
Most often a malformed raw field. The raw must be base64url-encoded RFC822 (not standard base64). Build with To/From/Subject headers then the body, joined by \r\n.
Service-account auth (no user) – possible?
Yes, with domain-wide delegation set up by a Workspace admin. The current connector uses delegated OAuth; service-account flow isn't yet exposed. Workaround – create a dedicated 'bot' Workspace user with appropriate licenses.
What's the largest file I can upload via Drive Upload?
Simple upload caps at 5MB. For larger files use resumable upload (not currently exposed in this connector). Workaround – chunk-write to a Sheet, or use Drive's web UI for one-off large transfers.
Sheets says 'INVALID_VALUE' when I write – why?
Cell references inside formulas must use the correct locale (comma vs semicolon as argument separator depending on locale). Use valueInputOption=RAW to bypass parsing.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.