- name
- gmail
- description
- Gmail automation via Google Apps Script. Use for: send emails, read inbox, create drafts, search messages.
- version
- 1.0.0
- author
- aviz85
- tags
- ["gmail","email","google","automation"]
- setup
- ./SETUP.md
- setup_complete
- false
# Gmail Integration
> **First time?** If `setup_complete: false` above, run `./SETUP.md` first, then set `setup_complete: true`.
Full Gmail automation via Google Apps Script API: send, read inbox, create drafts, mark as read.
## Workflow
1. **Read inbox** - Get unread emails with optional filters
2. **Send email** - Send with HTML support, CC/BCC
3. **Create drafts** - Save for review before sending
4. **Mark as read** - Update email status
## API Actions
| 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` | - |
## Examples
```bash
# 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"
```
## Response Format
**Send:**
```json
{
"success": true,
"email": { "to": "user@example.com", "subject": "Hello", "cc": null, "bcc": null }
}
```
**Inbox:**
```json
{
"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"]
}
]
}
```
## Important Notes
- **No emojis** in subject/body - URL encoding breaks them
- Default inbox query: `is:unread` with time filter
- `hours` param defaults to 24
## Integration
Works with other skills:
- **whatsapp** - Forward important emails as messages
- **calendar** - Create events from email content
Voir sur GitHub