Gmail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Gmail
19tools
The Gmail toolkit provides Arcade LLM tools for interacting with a user's Gmail account via the Gmail API. It enables reading, composing, sending, organizing, and managing email messages, threads, drafts, and labels.
Capabilities
- Reading & searching — List and retrieve emails, threads, and drafts; filter by headers; search threads; exclude automated/promotional mail by default with an opt-out flag.
- Composing & sending — Send emails and draft replies directly, compose new drafts, write draft replies, and send existing drafts; all support file attachments referenced as
file://URIs (bytes are substituted client-side and never pass through the conversation). - Draft management — Create, update, and delete drafts; update handles plain-text and HTML drafts with body replacement and preserves reply-quote tails; metadata-only updates work on multipart/attachment drafts.
- Label management — List, create, and apply or remove labels on individual messages or entire threads; label names resolve case-insensitively.
- Trash — Move individual messages to trash.
- Account identity — Retrieve the authenticated user's profile, email address, Gmail statistics, and account details.
OAuth
This toolkit uses OAuth 2.0 delegated access via Google. See the Google auth provider docs for setup details, required scopes, and configuration options.
Available tools(19)
19 of 19 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
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