From aviz85-claude-skills-library
Automates Gmail via Google Apps Script: send emails with HTML/CC/BCC, read/search inbox with filters, create drafts, mark as read. Useful for email workflows in code.
npx claudepluginhub aviz85/claude-skills-libraryThis skill uses the workspace's default tool permissions.
> **First time?** If `setup_complete: false` above, run `./SETUP.md` first, then set `setup_complete: true`.
Automates Gmail via Google Apps Script: send emails with HTML/CC/BCC, read/search inbox with filters, create drafts, mark as read. Useful for email workflows in code.
Provides Python CLI scripts to search, read, send, and modify Gmail messages/drafts for Google Workspace accounts using standalone OAuth authentication.
Interact with Gmail via Python CLI: search/read/send emails, create drafts, manage labels (read/archive/star). Standalone OAuth for Google Workspace accounts.
Share bugs, ideas, or general feedback.
First time? If
setup_complete: falseabove, run./SETUP.mdfirst, then setsetup_complete: true.
Full Gmail automation via Google Apps Script API: send, read inbox, create drafts, mark as read.
| Action | Description | Required Params | Optional |
|---|---|---|---|
send | Send email | to, subject, body | html, cc, bcc, name |
inbox | Read inbox | - | maxResults, query, hours |
draft | Create draft | to, subject, body | html, replyTo |
markRead | Mark as read | messageId | - |
# Send email
curl -sL "$URL?token=$TOKEN&action=send&to=user@example.com&subject=Hello&body=Message"
# Get last 10 unread emails from last 6 hours
curl -sL "$URL?token=$TOKEN&action=inbox&maxResults=10&hours=6"
# Search for specific emails
curl -sL "$URL?token=$TOKEN&action=inbox&query=from:important@client.com"
# Create draft
curl -sL "$URL?token=$TOKEN&action=draft&to=user@example.com&subject=Follow%20Up&body=Draft"
# Mark email as read
curl -sL "$URL?token=$TOKEN&action=markRead&messageId=MESSAGE_ID"
Send:
{
"success": true,
"email": { "to": "user@example.com", "subject": "Hello", "cc": null, "bcc": null }
}
Inbox:
{
"success": true,
"count": 5,
"emails": [
{
"id": "message_id",
"threadId": "thread_id",
"from": "sender@example.com",
"subject": "Email Subject",
"date": "2026-01-14T08:30:00Z",
"snippet": "First 200 chars...",
"body": "Full email body",
"isUnread": true,
"labels": ["INBOX", "UNREAD"]
}
]
}
is:unread with time filterhours param defaults to 24Works with other skills: