Skills expanso-email-triage

Skill: email-triage

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/aronchick/expanso-email-triage" ~/.openclaw/skills/openclaw-skills-expanso-email-triage && rm -rf "$T"
manifest: skills/aronchick/expanso-email-triage/skill.yaml
source content

Skill: email-triage

Version: 1.0.0

Intelligent email triage: categorize, prioritize, and sync calendar events.

Inspired by the user who cleared 6,000 emails on day one.

Features:

- Categorize emails (urgent, action-required, FYI, spam)

- Extract calendar events and check availability

- Draft response suggestions

- Create follow-up reminders

Security: All credentials stay local on Expanso Edge.

name: email-triage version: 1.0.0 description: AI-powered email triage with calendar sync and response drafting

Credentials (stored locally, never transmitted)

credentials:

  • name: GMAIL_TOKEN required: false description: Gmail OAuth token (or use IMAP credentials)
  • name: OUTLOOK_TOKEN required: false description: Microsoft Graph API token
  • name: IMAP_HOST required: false description: IMAP server hostname
  • name: IMAP_USER required: false description: IMAP username
  • name: IMAP_PASS required: false description: IMAP password
  • name: OPENAI_API_KEY required: true description: OpenAI API key for AI processing
  • name: CALENDAR_API_KEY required: false description: Google Calendar or Outlook Calendar API key

Skill inputs

inputs:

  • name: provider type: string required: true enum: [gmail, outlook, imap] description: Email provider to connect
  • name: folder type: string default: INBOX description: Email folder to process
  • name: limit type: integer default: 50 description: Maximum emails to process per run
  • name: since_hours type: integer default: 24 description: Process emails from last N hours
  • name: categories type: array default: [urgent, action-required, meeting, fyi, newsletter, spam] description: Categories to classify into
  • name: auto_archive type: boolean default: false description: Automatically archive processed emails
  • name: create_calendar_events type: boolean default: true description: Automatically create calendar events from meeting requests

Skill outputs

outputs:

  • name: summary type: object description: "Triage summary: {processed, by_category, urgent_count, meetings_found}"
  • name: emails type: array description: "Processed emails with: {id, subject, from, category, priority, action, calendar_event?}"
  • name: calendar_events type: array description: Calendar events extracted/created
  • name: draft_responses type: array description: Suggested responses for action-required emails
  • name: metadata type: object description: Processing metadata and audit trail

Backend options

backends:

  • name: openai type: remote requires: [OPENAI_API_KEY] description: OpenAI GPT-4o-mini for classification and drafting
  • name: ollama type: local models: [llama3.2, mistral] description: Local Ollama for privacy-sensitive email processing

Expanso components used

components: inputs: - http_client # Fetch emails from API - http_server # MCP endpoint processors: - mapping # Data transformation - openai_chat_completion # AI classification - branch # Conditional processing - log # Audit trail outputs: - http_client # Calendar API calls - stdout # CLI output - sync_response # MCP response

Rate limiting

rate_limits:

  • label: email_api count: 10 interval: 1s
  • label: openai_api count: 20 interval: 1m