witooh/skills

fastmail

Manages Fastmail email and calendar via JMAP and CalDAV APIs. Use for emails (read, send, reply, search, organize, bulk operations, threads) or calendar (events, reminders, RSVP invitations). Timezone auto-detected from system.

First seen Mar 13, 2026

Installation

$ npx skills add witooh/skills --skill fastmail

Also in this package

Other skills from witooh/skills · top by installs.

npx skills add witooh/skills

Browse all from witooh/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version3.0
More metadata
author
witooh
version
3.0
api
JMAP, CalDAV

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,274 B
  • docs SUMMARY.md 243 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Quick Start

Invoke tools via CLI using the Bash tool:

# Install dependencies first (one-time setup)
cd <skill-directory>
uv venv .venv && uv pip install -r requirements.txt
# Or: python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

# Email: List mailboxes
.venv/bin/python scripts/cli.py list_mailboxes

# Email: Send
.venv/bin/python scripts/cli.py send_email \
  '{"to": [{"email": "[email protected]"}], "subject": "Hi", "text_body": "Message"}'

# Calendar: List events
.venv/bin/python scripts/cli.py list_events \
  '{"start_date": "2024-01-01", "end_date": "2024-01-31"}'

# Calendar: Create event with reminder
.venv/bin/python scripts/cli.py create_event_with_reminder \
  '{"title": "Meeting", "start": "2024-01-15T10:00:00+07:00", "end": "2024-01-15T11:00:00+07:00", "reminders": [{"minutesBefore": 15}, {"minutesBefore": 60}]}'

# List all available tools
.venv/bin/python scripts/cli.py --list

When to Use This Skill

  • Check inbox or search emails
  • Send, reply, or move emails
  • Apply labels or organize mailbox
  • View calendar or events
  • Create, update, or delete events
  • Set event reminders or alarms

Email Tools (10 total)

Tool Purpose
list_mailboxes List all folders
list_emails List emails in mailbox
get_email Get full email content
get_thread Get all emails in a conversation thread
search_emails Search by text query
send_email Send new email
reply_email Reply to email
move_email Move to folder
set_labels Apply labels ($seen, $flagged)
delete_email Delete (move to trash)

Bulk Email Tools (3 total)

Tool Purpose
bulkmoveemails Move multiple emails at once
bulksetlabels Apply labels to multiple emails
bulkdeleteemails Delete multiple emails at once

Calendar Tools (10 total)

Tool Purpose
list_calendars List all calendars
list_events List events by date range
get_event Get event details
create_event Create new event
update_event Update existing event
delete_event Delete event
search_events Search by title/description
createrecurringevent Create repeating event
list_invitations List calendar invitations
respondtoinvitation Accept/decline/maybe invitations

Reminder Tools (4 total)

Tool Purpose
addeventreminder Add reminder to event
removeeventreminder Remove reminder(s)
listeventreminders List reminders for event
createeventwith_reminder Create event + reminder in one call

Common Examples

# Check inbox (limit 10)
.venv/bin/python scripts/cli.py list_emails '{"limit": 10}'

# Search for emails
.venv/bin/python scripts/cli.py search_emails '{"query": "invoice"}'

# Get specific email content
.venv/bin/python scripts/cli.py get_email '{"email_id": "xxx"}'

# Get email thread/conversation
.venv/bin/python scripts/cli.py get_thread '{"email_id": "xxx"}'

# Bulk operations
.venv/bin/python scripts/cli.py bulk_move_emails '{"email_ids": ["id1", "id2"], "target_mailbox_id": "archive"}'
.venv/bin/python scripts/cli.py bulk_delete_emails '{"email_ids": ["id1", "id2", "id3"]}'

# Create recurring event (daily for 10 days)
.venv/bin/python scripts/cli.py create_recurring_event \
  '{"title": "Standup", "start": "2024-01-01T09:00:00", "end": "2024-01-01T09:30:00", "recurrence": "daily", "recurrence_count": 10}'

# Calendar invitations
.venv/bin/python scripts/cli.py list_invitations
.venv/bin/python scripts/cli.py respond_to_invitation '{"event_id": "xxx", "response": "accept"}'

Decision Tree

Need to manage email?

  • List/search: listemails or searchemails
  • Read content: get_email
  • View conversation: get_thread
  • Send/reply: sendemail or replyemail
  • Organize: moveemail, setlabels, delete_email
  • Bulk actions: bulkmoveemails, bulksetlabels, bulkdeleteemails

Need to manage calendar?

  • View: listcalendars or listevents
  • Create: createevent or createrecurring_event
  • Modify: update_event
  • Delete: delete_event
  • Invitations: listinvitations, respondto_invitation

Need reminders?

  • Add to existing event: addeventreminder
  • Create event + reminder: createeventwith_reminder (faster)
  • Manage: listeventreminders, removeeventreminder

Output Format

All tools return JSON:

{
  "success": true,
  "result": {
    /* tool-specific response */
  }
}

Environment Variables

Variable Purpose Required
FASTMAILAPITOKEN Email via JMAP Yes (for email)
FASTMAIL_USERNAME Calendar via CalDAV Yes (for calendar)
FASTMAIL_PASSWORD Calendar app password Yes (for calendar)
FASTMAIL_TIMEZONE Calendar timezone (IANA format) No (auto-detected)

Setup:

export FASTMAIL_API_TOKEN="your-api-token"
export FASTMAIL_USERNAME="[email protected]"
export FASTMAIL_PASSWORD="your-app-password"
# Optional: Override timezone (defaults to system local timezone)
export FASTMAIL_TIMEZONE="America/New_York"  # or "Asia/Bangkok", "Europe/London", etc.

Timezone Support

Configurable calendar timezone

  • Default: Auto-detects your system's local timezone
  • Override: Set FASTMAIL_TIMEZONE environment variable
  • Uses IANA timezone identifiers (e.g., America/New_York, Asia/Bangkok, Europe/London)
  • Input times assumed in configured timezone
  • Output times shown in configured timezone
  • Stored internally as UTC
  • Handles Daylight Saving Time (DST) automatically

See Also