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).
- In Google Cloud Console, create a new project (or pick an existing one).
- Enable the APIs you need: Gmail, Google Calendar, Google Drive, Google Sheets, Google Docs, Google Slides.
- Go to OAuth consent screen, configure (External for personal Gmail, Internal for your Workspace domain), add the scopes listed below.
- 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.
- Copy Client ID + Client Secret.
- 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.modifyhttps://www.googleapis.com/auth/gmail.sendhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/documentshttps://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.
| Operation | Category | What it does |
|---|---|---|
| Create Event | General | Create a new calendar event |
| Delete Event | General | Delete a calendar event |
| Query Free/Busy | General | Query free/busy status for calendars |
| Get Event | General | Get a calendar event by ID |
| List Calendars | General | List available calendars |
| List Calendar Events | General | List events from a calendar |
| Update Event | General | Update an existing calendar event |
| Create Draft | General | Create an email draft (pass message.raw as base64url RFC 2822) |
| Delete Draft | General | Delete a draft permanently |
| Get Draft | General | Get a draft by ID |
| List Drafts | General | List email drafts |
| Send Draft | General | Send an existing draft by ID |
| Get Email | General | Get a full email message by ID |
| List Labels | General | List Gmail labels |
| List Emails | General | List email messages |
| Modify Message Labels | General | Add or remove labels on an email message |
| Send Email | General | Send an email (raw RFC 2822 base64url encoded) |
| Trash Email | General | Move an email to trash |
| Untrash Email | General | Remove an email from trash |
| Append Rows | General | Append rows to a sheet |
| Batch Update Spreadsheet | General | Batch update – add/delete sheets, format cells, merge, sort, etc. |
| Clear Sheet Range | General | Clear values from a range |
| Create Spreadsheet | General | Create a new spreadsheet |
| Get Spreadsheet | General | Get spreadsheet metadata |
| Read Sheet Range | General | Read values from a sheet range (e.g. Sheet1!A1:D10) |
| Write Sheet Range | General | Write values to a sheet range |
Operations
Create Event
Create a new calendar event
| Parameter | Required | Type | Description |
|---|---|---|---|
Calendar ID calendar_id | Yes | text | |
Title summary | Yes | text | |
Start (JSON) start | Yes | text | |
End (JSON) end | Yes | text | |
Description description | No | textarea | |
Location location | No | text | |
Attendees (JSON) attendees | No | textarea |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Calendar ID calendar_id | Yes | text | |
Event ID event_id | Yes | text |
Tips
- Hard-deletes. sendUpdates=all notifies attendees of cancellation.
Query Free/Busy
Query free/busy status for calendars
| Parameter | Required | Type | Description |
|---|---|---|---|
Start time (ISO 8601) timeMin | Yes | text | |
End time (ISO 8601) timeMax | Yes | text | |
Calendar IDs (JSON) items | No | textarea |
Get Event
Get a calendar event by ID
| Parameter | Required | Type | Description |
|---|---|---|---|
Calendar ID calendar_id | Yes | text | |
Event ID event_id | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Calendar ID calendar_id | Yes | text | |
Start (RFC3339) timeMin | No | text | |
End (RFC3339) timeMax | No | text | |
Search text q | No | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Calendar ID calendarId | Yes | text | |
Event ID eventId | Yes | text | |
Title summary | No | text | |
Description description | No | textarea | |
Start (JSON) start | No | text | |
End (JSON) end | No | text | |
Location location | No | text | |
Attendees (JSON) attendees | No | textarea | |
Calendar Id calendar_id | Yes | text | |
Event Id event_id | Yes | text |
Tips
- PATCH-style. Send sendUpdates=all to re-notify attendees.
Create Draft
Create an email draft (pass message.raw as base64url RFC 2822)
| Parameter | Required | Type | Description |
|---|---|---|---|
Message (JSON) message | No | textarea |
Delete Draft
Delete a draft permanently
| Parameter | Required | Type | Description |
|---|---|---|---|
Draft ID draftId | Yes | text | |
Draft Id draft_id | Yes | text |
Get Draft
Get a draft by ID
| Parameter | Required | Type | Description |
|---|---|---|---|
Draft ID draftId | Yes | text | |
Draft Id draft_id | Yes | text |
List Drafts
List email drafts
No input parameters.
Send Draft
Send an existing draft by ID
| Parameter | Required | Type | Description |
|---|---|---|---|
Draft ID draftId | Yes | text | |
Id id | No | text |
Get Email
Get a full email message by ID
| Parameter | Required | Type | Description |
|---|---|---|---|
Message ID message_id | Yes | text |
List Labels
List Gmail labels
No input parameters.
List Emails
List email messages
| Parameter | Required | Type | Description |
|---|---|---|---|
Search query q | No | text | |
Label IDs labelIds | No | text |
Modify Message Labels
Add or remove labels on an email message
| Parameter | Required | Type | Description |
|---|---|---|---|
Message ID messageId | Yes | text | |
Add label IDs (comma-separated) addLabelIds | No | text | |
Remove label IDs (comma-separated) removeLabelIds | No | text | |
Message Id message_id | Yes | text |
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)
| Parameter | Required | Type | Description |
|---|---|---|---|
Raw message (base64url) raw | Yes | textarea |
Trash Email
Move an email to trash
| Parameter | Required | Type | Description |
|---|---|---|---|
Message ID message_id | Yes | text |
Untrash Email
Remove an email from trash
| Parameter | Required | Type | Description |
|---|---|---|---|
Message ID messageId | Yes | text | |
Message Id message_id | Yes | text |
Append Rows
Append rows to a sheet
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheet_id | Yes | text | |
Range range | Yes | text | |
Values (2D JSON array) values | Yes | textarea |
Batch Update Spreadsheet
Batch update – add/delete sheets, format cells, merge, sort, etc.
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheetId | Yes | text | |
Requests (JSON) requests | Yes | textarea | |
Spreadsheet Id spreadsheet_id | Yes | text |
Clear Sheet Range
Clear values from a range
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheet_id | Yes | text | |
Range range | Yes | text |
Create Spreadsheet
Create a new spreadsheet
| Parameter | Required | Type | Description |
|---|---|---|---|
Properties properties | No | text | |
Sheets sheets | No | text |
Get Spreadsheet
Get spreadsheet metadata
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheet_id | Yes | text |
Read Sheet Range
Read values from a sheet range (e.g. Sheet1!A1:D10)
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheet_id | Yes | text | |
Range (A1 notation) range | Yes | text |
Write Sheet Range
Write values to a sheet range
| Parameter | Required | Type | Description |
|---|---|---|---|
Spreadsheet ID spreadsheet_id | Yes | text | |
Range range | Yes | text | |
Values (2D JSON array) values | Yes | textarea |
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.