# Mail Action Items

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-aashari-ai-agent-skills-mail-action-items`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [aashari](https://agentstack.voostack.com/s/aashari)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [aashari](https://github.com/aashari)
- **Source:** https://github.com/aashari/ai-agent-skills/tree/main/skills/apple-mail/mail-action-items

## Install

```sh
agentstack add skill-aashari-ai-agent-skills-mail-action-items
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Mail Action Items — Extract Tasks from Email

Time window: **$ARGUMENTS** (default: last 3 days)

## Step 1: Find candidate emails with action signals

### Subject-line signals
```bash
DB="$HOME/Library/Mail/V10/MailData/Envelope Index"
SINCE=$(($(date +%s) - 259200))  # 3 days default; adjust per $ARGUMENTS

sqlite3 "$DB" "
SELECT datetime(m.date_received,'unixepoch','localtime') as dt,
       s.subject, a.address as sender, a.comment as name,
       mb.url as mailbox, m.ROWID, m.read, m.is_urgent
FROM messages m
JOIN subjects  s  ON m.subject = s.ROWID
JOIN addresses a  ON m.sender  = a.ROWID
JOIN mailboxes mb ON m.mailbox = mb.ROWID
WHERE m.date_received >= ${SINCE}
  AND m.deleted = 0
  AND m.automated_conversation != 2
  AND mb.url NOT LIKE '%Spam%' AND mb.url NOT LIKE '%Trash%'
  AND mb.url NOT LIKE '%Sent%'
  AND (
    s.subject LIKE '%action required%'
    OR s.subject LIKE '%please review%'
    OR s.subject LIKE '%approval%'
    OR s.subject LIKE '%approve%'
    OR s.subject LIKE '%sign off%'
    OR s.subject LIKE '%deadline%'
    OR s.subject LIKE '%due%'
    OR s.subject LIKE '%RSVP%'
    OR s.subject LIKE '%respond by%'
    OR s.subject LIKE '%feedback%'
    OR s.subject LIKE '%request%'
    OR m.is_urgent = 1
    OR m.flagged = 1
  )
ORDER BY m.is_urgent DESC, m.date_received DESC;" 2>/dev/null
```

### Urgent/flagged unread (always surface)
```bash
sqlite3 "$DB" "
SELECT datetime(m.date_received,'unixepoch','localtime') as dt,
       s.subject, a.address as sender, m.ROWID
FROM messages m
JOIN subjects s ON m.subject = s.ROWID
JOIN addresses a ON m.sender = a.ROWID
JOIN mailboxes mb ON m.mailbox = mb.ROWID
WHERE m.date_received >= ${SINCE}
  AND m.read = 0 AND m.deleted = 0
  AND m.automated_conversation != 2
  AND m.unsubscribe_type = 0
  AND mb.url NOT LIKE '%Spam%' AND mb.url NOT LIKE '%Trash%'
  AND mb.url NOT LIKE '%Sent%'
ORDER BY m.date_received DESC;" 2>/dev/null
```

## Step 2: Read bodies and extract action items
For each candidate email, parse the body:
```bash
python3 ~/.claude/skills/_mail-shared/parser.py   ...
```

Look for action-item patterns in the body text:
- "Please [verb]..." → direct request
- "Could you..." / "Can you..." → request
- "By [date]" / "Before [date]" / "Due [date]" → deadline
- "Let me know..." → response expected
- "Your approval is needed" / "Please approve" → approval required
- "Next steps:" / "Action items:" / "TODO:" → explicit task lists
- "Waiting on you" / "Pending your" → you're the blocker
- Meeting notes with "Suggested next steps" or your name + "will"

## Step 3: Deduplicate and prioritize
- Group by sender/thread
- Prioritize: overdue deadlines > urgent flagged > approval requests > general requests
- For Jira/project management alerts, extract ticket ID and description

## Output Format
**Action Items from Your Email (last 3 days)**

For each item:
- [ ] **Task description** — from [Sender], received [date]
  - Context: [1-line summary from email body]
  - Deadline: [if mentioned]

Group by: Overdue → Today → This week → No deadline
Mark items from unread emails with [UNREAD].

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [aashari](https://github.com/aashari)
- **Source:** [aashari/ai-agent-skills](https://github.com/aashari/ai-agent-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-aashari-ai-agent-skills-mail-action-items
- Seller: https://agentstack.voostack.com/s/aashari
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
