npx skills add smithery/dpaluy --skill fastmail
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.
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
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
More metadata
- author
- witooh
- version
- 3.0
- api
- JMAP, CalDAV
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md6,274 B -
docs
SUMMARY.md243 B
History
- First seen on skills.sh
- 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:
listemailsorsearchemails - Read content:
get_email - View conversation:
get_thread - Send/reply:
sendemailorreplyemail - Organize:
moveemail,setlabels,delete_email - Bulk actions:
bulkmoveemails,bulksetlabels,bulkdeleteemails
Need to manage calendar?
- View:
listcalendarsorlistevents - Create:
createeventorcreaterecurring_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_TIMEZONEenvironment 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
- Detailed reference:
./references/TOOLS.md - Setup help: Fastmail Settings → Privacy & Security → Integrations
- JMAP docs: https://jmap.io/
- CalDAV RFC: https://datatracker.ietf.org/doc/html/rfc4791