Gmail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Gmail
22tools
The Gmail toolkit lets LLMs interact with a user's Gmail account through the Gmail API. It covers the full email lifecycle — reading, composing, sending, replying, forwarding, drafting, labeling, searching, and trashing — with no extra secrets beyond OAuth.
Capabilities
- Reading & searching — Fetch individual messages or full threads by ID, list emails or threads with optional automated-mail filtering, search threads by query, look up messages by header, and retrieve the authenticated user's identity and mailbox totals.
- Composing & sending — Send new emails, reply to messages, forward messages (with quoted body and attachments), and attach local files via
file://URIs without passing raw bytes through the conversation. - Draft management — Create, list, read, update, send, and delete drafts; update supports subject, body, recipients, CC, and BCC independently; reply drafts preserve quote tails; content type is preserved automatically.
- Label management — List all labels, create new labels, and add or remove labels on individual messages or entire threads; label names resolve case-insensitively.
- Trash operations — Move a single message to Trash or restore it, leaving the rest of the thread untouched; trashed messages remain recoverable.
OAuth
This toolkit uses OAuth 2.0 via Google. See the Arcade Google auth provider docs for setup details, required scopes, and configuration.
Available tools(22)
22 of 22 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. | |||
Send a copy of one message to new recipients as a new conversation.
The forward quotes the original body, prefixes the subject with ``Fwd:``, carries
filename-bearing attachments, and prepends the optional note. It does not reply to
or change the original conversation. | |||
Read one message by ID without loading the rest of its thread.
Returns parsed sender and recipient headers, the subject, text and HTML bodies,
labels, dates, and attachment metadata. Attachment file bytes are not returned. | |||
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 one message to Trash without deleting the rest of its conversation.
Only the message identified by ``email_id`` is moved. Other messages in the same
thread are unchanged, and the trashed message remains recoverable while retained. | |||
Restore one message from Trash without changing the rest of its conversation.
The message's ``TRASH`` label is removed. If the message is already restored, the
operation succeeds as a no-op and returns its current state. | |||
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). | |||
Return who the Gmail calls run as: the authenticated user's identity and mailbox totals. | |||
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