Gmail
Service domainEMAIL
Arcade Optimized
Arcade.dev LLM tools for Gmail
22tools
The Gmail toolkit exposes Gmail as a set of LLM-callable tools via Arcade, enabling agents to read, compose, send, organize, and manage a user's Gmail mailbox programmatically.
Capabilities
- Reading & searching — Fetch individual messages or full threads by ID, list emails/threads with 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, and forward emails (with quoted body,
Fwd:subject prefix, and attachment carry-over); all send operations support file attachments viafile://URIs. - Draft management — Create, list, update, send, and delete drafts; update supports plain-text and HTML drafts with metadata-only or full-body changes, and draft-reply composition preserves reply-quote structure.
- Label & organization — List all mailbox labels, create new labels, and apply or remove labels on individual messages or entire threads (case-insensitive label resolution).
- Trash operations — Move a single message to Trash or restore it, without affecting other messages in the same thread.
OAuth
This toolkit uses OAuth 2.0 delegated authorization via Google. See the Arcade Google auth provider docs for setup instructions, required OAuth app configuration, and scope details.
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