
Gmail
- 56 installs
- 186 repo stars
- Updated August 4, 2026
- aws-samples/sample-strands-agent-with-agentcore
gmail is a Claude skill that reads, sends, drafts, deletes, and organizes Gmail emails through tools that use Gmail's search query syntax.
About
This skill connects an agent to Gmail so it can list, search, read, send, draft, delete, label, and thread emails. It exposes Gmail query syntax and label operations like archive, star, and mark-read. A developer uses it when an assistant needs to triage or send mail on the user's behalf. Bulk deletion is permanent and gated behind a required reason and user approval.
- Reads, sends, drafts, deletes, and organizes Gmail emails via dedicated tools
- Supports Gmail query syntax (from:, subject:, is:unread, has:attachment)
- bulk_delete_emails permanently removes matching mail and requires a reason plus user confirmation
Gmail by the numbers
- 56 all-time installs (skills.sh)
- Ranked #1,034 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
gmail capabilities & compatibility
- Capabilities
- email triage · email sending
- Works with
- gmail
- Use cases
- Pricing
- Free
What gmail says it does
Read, send, draft, delete, and organize Gmail emails
Permanently delete multiple emails by query. **Cannot be undone.**
npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill gmailAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 56 |
|---|---|
| repo stars | ★ 186 |
| Last updated | August 4, 2026 |
| Repository | aws-samples/sample-strands-agent-with-agentcore ↗ |
What it does
Let an agent search, read, send, draft, and organize Gmail emails, including bulk cleanup with approval.
Who is it for?
Triaging, searching, sending, and labeling Gmail email from an agent.
Skip if: Non-Gmail mail providers or calendar scheduling.
When should I use this skill?
The user asks to read, send, draft, delete, or organize Gmail email.
What you get
Emails read, sent, drafted, labeled, or bulk-deleted with confirmation, using Gmail query filters.
By the numbers
- 10 Gmail tools
- bulk_delete_emails max 100 emails
Files
Gmail
Available Tools
- list_labels(): List all Gmail labels (system: INBOX, SENT, TRASH, SPAM, DRAFT, IMPORTANT, STARRED, UNREAD; plus user-created labels).
- list_emails(label?, max_results?, include_spam_trash?): List emails by label.
label(string, optional, default: "INBOX"): Label to filter by (INBOX, SENT, DRAFT, TRASH, SPAM, STARRED, IMPORTANT, or custom label ID)max_results(integer, optional, default: 10, max: 100): Number of emails to returninclude_spam_trash(boolean, optional, default: false): Include SPAM and TRASH
- search_emails(query, max_results?): Search Gmail using query syntax.
query(string, required): Gmail search query (from:, to:, subject:, is:unread, has:attachment, after:, before:, older_than:, newer_than:)max_results(integer, optional, default: 10, max: 50): Number of results
- read_email(message_id): Read a full email including body and attachments.
message_id(string, required): Gmail message ID (from list_emails or search_emails)
- send_email(to, subject, body, cc?, bcc?, reply_to?, in_reply_to?, html_body?): Send an email.
to(string, required): Recipient(s), comma-separatedsubject(string, required): Email subjectbody(string, required): Plain text email bodycc(string, optional): CC recipient(s)bcc(string, optional): BCC recipient(s)reply_to(string, optional): Reply-To addressin_reply_to(string, optional): Message-ID to reply to (for threading)html_body(string, optional): HTML version of email body
- draft_email(to, subject, body, cc?, bcc?, reply_to?, in_reply_to?, html_body?): Create a draft for later editing/sending. Same parameters as
send_email.
- delete_email(message_id, permanent?): Delete an email.
message_id(string, required): Gmail message IDpermanent(boolean, optional, default: false): If true, permanently delete; if false, move to Trash
- bulk_delete_emails(query, reason, max_delete?): Permanently delete multiple emails by query. Cannot be undone.
query(string, required): Gmail search query to find emailsreason(string, required): Human-readable explanation (shown to user for approval)max_delete(integer, optional, default: 50, max: 100): Maximum emails to delete
- modify_email(message_id, add_labels?, remove_labels?): Add/remove labels on an email.
message_id(string, required): Gmail message IDadd_labels(string, optional): Comma-separated label IDs to add (e.g., "STARRED,IMPORTANT")remove_labels(string, optional): Comma-separated label IDs to remove (e.g., "UNREAD,INBOX")
- get_email_thread(thread_id): Get all messages in an email thread/conversation.
thread_id(string, required): Gmail thread ID (from read_email or search_emails)
Usage Guidelines
- Use
list_labelsfirst to discover available labels before filtering. - Gmail search query syntax:
from:sender,to:recipient,subject:text,is:unread,has:attachment,after:2024/01/01,before:2024/12/31. - Use
get_email_threadto view entire conversation context before replying.
Common Operations
Label operations via modify_email:
| Operation | Parameters |
|---|---|
| Mark as read | remove_labels="UNREAD" |
| Mark as unread | add_labels="UNREAD" |
| Archive | remove_labels="INBOX" |
| Star | add_labels="STARRED" |
| Unstar | remove_labels="STARRED" |
| Mark important | add_labels="IMPORTANT" |
Bulk Deletion
bulk_delete_emails(query, reason) permanently deletes all emails matching a Gmail query. This cannot be undone.
- Always provide a
reasonparameter explaining the intent. - Always explain what will be deleted and get user confirmation before calling.
Common queries:
- Spam cleanup:
"is:spam older_than:7d" - Old unread:
"in:inbox is:unread older_than:14d" - Promotions purge:
"category:promotions older_than:30d" - From specific sender:
"from:noreply@example.com older_than:30d"
UI Guidance (from tools-config)
Gmail Tool Usage:
- list_labels: Get all available labels before filtering emails
- list_emails: Browse emails by label (INBOX, SENT, DRAFT, TRASH, etc.)
- search_emails: Use Gmail query syntax (from:, to:, subject:, is:unread, has:attachment, after:, before:)
- read_email: Get full email content with attachments
- send_email: Send emails with optional CC, BCC, and HTML body
- draft_email: Create drafts for later editing/sending
- delete_email: Move to trash (permanent=True for permanent deletion)
- bulk_delete_emails: Permanently delete multiple emails by query (requires user approval)
- modify_email: Add/remove labels (mark read: remove UNREAD, archive: remove INBOX, star: add STARRED)
- get_email_thread: View entire conversation thread
Bulk Deletion (bulk_delete_emails):
- Use for spam cleanup, old email purge, etc.
- Always provide 'reason' parameter explaining the intent
- Common queries: "is:spam older_than:7d", "in:inbox is:unread older_than:14d", "category:promotions older_than:30d"
- WARNING: Permanently deletes emails - cannot be recovered
Common Operations:
- Mark as read: modify_email(id, remove_labels="UNREAD")
- Archive: modify_email(id, remove_labels="INBOX")
- Star: modify_email(id, add_labels="STARRED")
- Mark important: modify_email(id, add_labels="IMPORTANT")
Related skills
FAQ
Can it permanently delete emails?
Yes, bulk_delete_emails permanently deletes matching emails; it requires a reason and user confirmation and cannot be undone.
How do I filter emails?
Use Gmail query syntax like from:, to:, subject:, is:unread, has:attachment, after:, and before:.