Skip to Content
ResourcesIntegrationsProductivity & DocsGmail

Gmail

Service domainEMAIL
Gmail icon
Arcade Optimized

Arcade.dev LLM tools for Gmail

Author:Arcade
Version:8.0.3
Auth:User authorization via the Google auth provider
19tools

The Gmail toolkit provides Arcade LLM tools for interacting with a user's Gmail account via the Gmail API. It enables agents to read, compose, send, organize, and manage email and threads programmatically.

Capabilities

  • Reading & searching: List, retrieve, and search emails and threads with configurable filtering (automated/no-reply exclusion by default); look up messages by header; retrieve full thread context.
  • Composing & drafts: Create, update, send, and delete drafts (including reply drafts); supports partial field updates (subject, recipients, body) while preserving unmodified fields.
  • Sending & replying: Send new emails or direct replies, both supporting local file attachments passed as file:// URIs — file bytes are resolved client-side and never passed through the conversation.
  • Labels & organization: List, create, and apply/remove labels on individual messages or entire threads (case-insensitive name matching); move messages to trash.
  • Account info: Retrieve the authenticated user's profile, email address, and Gmail account statistics.

OAuth

This toolkit uses OAuth 2.0 via Google. See the Arcade Google auth provider docs for configuration details, required scopes, and setup instructions.

Available tools(19)

19 of 19 tools
Operations
Behavior
Tool nameDescriptionSecrets
Add and remove labels from an email using the Gmail API. Label names match case-insensitively when there is no exact match, so "important" resolves to the "Important" label. The confirmation reflects the labels actually present on the message after the change, not the requested input.
Add and remove labels on every message in a thread using the Gmail API. Use this to change a whole conversation at once (for example, marking a thread read by removing "UNREAD") instead of modifying each message. Label names match case-insensitively when there is no exact match. The confirmation reflects the labels actually present across the thread after the change, not the requested input.
Create a new label in the user's mailbox.
Delete a draft email using the Gmail API.
Get the specified thread by ID.
Lists draft emails in the user's draft mailbox using the Gmail API.
Read emails from a Gmail account and extract plain text content. By default, obvious automated emails are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all emails regardless of source.
Search for emails by header using the Gmail API.
List all the labels in the user's mailbox.
List threads in the user's mailbox. By default, obvious automated threads are excluded from results using no-reply sender patterns and Gmail's non-primary category filters (promotions, social, updates, forums). Set exclude_automated=False to include all threads regardless of source.
Send a reply to an email message, optionally with one or more file attachments. To attach files, pass ``attachments`` and give each file's local path as a ``file://`` URI in ``source`` (formatted ``file:///absolute/path/to/file``). The file's bytes are read and substituted on the client before the request is sent, so the contents never pass through this conversation. Do not read, encode, or inline the bytes yourself.
Search for threads in the user's mailbox.
Send a draft email using the Gmail API.
Send an email using the Gmail API, optionally with one or more file attachments. To attach files, pass ``attachments`` and give each file's local path as a ``file://`` URI in ``source`` (formatted ``file:///absolute/path/to/file``). The file's bytes are read and substituted on the client before the request is sent, so the contents never pass through this conversation. Do not read, encode, or inline the bytes yourself.
Move an email to the trash folder using the Gmail API.
Update an existing email draft using the Gmail API. Single-part ``text/plain`` and single-part ``text/html`` drafts both support full body replacement; the rebuild follows the existing draft's content type, so a plain draft stays plain and an HTML draft stays HTML. Plain-text input supplied against an HTML draft is auto-converted to HTML, and HTML input supplied against a plain draft is stored verbatim as ``text/plain``. Reply drafts preserve their reply-quote tail (``> `` lines for plain, ``<blockquote>`` for HTML) when the body is supplied as a top-only update. Multipart drafts and drafts with attachments still fail when the body changes; in those cases the tool succeeds only when the effective body is unchanged (metadata-only update preserving the existing MIME tree). Edit those drafts in Gmail directly. For each of subject, body, recipient, cc, and bcc, omitting the parameter or passing ``None`` leaves that part of the draft unchanged (for cc/bcc, existing headers are kept; pass an empty list to clear).
Get comprehensive user profile and Gmail account information. This tool provides detailed information about the authenticated user including their name, email, profile picture, Gmail account statistics, and other important profile details from Google services.
Compose a new email draft using the Gmail API, optionally with file attachments. To attach files, pass ``attachments`` and give each file's local path as a ``file://`` URI in ``source`` (formatted ``file:///absolute/path/to/file``). The file's bytes are read and substituted on the client before the request is sent, so the contents never pass through this conversation. Do not read, encode, or inline the bytes yourself.
Compose a draft reply to an email message, optionally with one or more file attachments. To attach files, pass ``attachments`` and give each file's local path as a ``file://`` URI in ``source`` (formatted ``file:///absolute/path/to/file``). The file's bytes are read and substituted on the client before the request is sent, so the contents never pass through this conversation. Do not read, encode, or inline the bytes yourself.
Last updated on