π¦ ClawHub
Exchange Skills
by @derekhsu
Full email, calendar, contacts, tasks, and notes management for Microsoft Exchange/Outlook. Use when Claude needs to list unread emails, read email content,...
TERMINAL
clawhub install exchange-skillsπ About This Skill
name: exchange-skills description: "Full email, calendar, contacts, tasks, and notes management for Microsoft Exchange/Outlook. Use when Claude needs to list unread emails, read email content, reply to emails, mark emails as read, archive emails, view calendar events, search contacts, manage tasks, or access notes. Supports batch operations for external/internal emails. Triggers: check my email, unread emails, reply to email, archive external emails, mark as read, calendar, schedule, θ‘η¨, contacts, tasks, notes." metadata: openclaw: requires: env: - EXCHANGE_SERVER - EXCHANGE_EMAIL - EXCHANGE_USERNAME - EXCHANGE_PASSWORD optional_env: - EXCHANGE_DOMAIN primaryEnv: EXCHANGE_PASSWORD
Exchange Mail
Manage Microsoft Exchange/Outlook emails and calendar from terminal.
Script Location
scripts/exchange_mail.py - Main CLI script
Commands
# List unread (today, where you're To/CC)
python3 scripts/exchange_mail.py listList options
python3 scripts/exchange_mail.py list --days 3 # Last 3 days
python3 scripts/exchange_mail.py list --all # All unread
python3 scripts/exchange_mail.py list --json # JSON outputRead email
python3 scripts/exchange_mail.py read Reply
python3 scripts/exchange_mail.py reply "Your message"Mark as read
python3 scripts/exchange_mail.py mark-read
python3 scripts/exchange_mail.py mark-read --external
python3 scripts/exchange_mail.py mark-read --internal
python3 scripts/exchange_mail.py mark-read --allArchive
python3 scripts/exchange_mail.py archive
python3 scripts/exchange_mail.py archive --external
python3 scripts/exchange_mail.py archive --internal --days 7Calendar (NEW!)
python3 scripts/exchange_mail.py calendar # Next 7 days
python3 scripts/exchange_mail.py calendar --today # Today only
python3 scripts/exchange_mail.py calendar --days 30 # Next 30 days
python3 scripts/exchange_mail.py calendar --json # JSON outputContacts (NEW!)
python3 scripts/exchange_mail.py contacts "name" # Search contacts
python3 scripts/exchange_mail.py contacts "name" --limit 10 # Limit results
python3 scripts/exchange_mail.py contacts "name" --json # JSON outputTasks (NEW!)
python3 scripts/exchange_mail.py tasks # List tasks
python3 scripts/exchange_mail.py tasks --days 30 # Next 30 days
python3 scripts/exchange_mail.py tasks --status pending # Filter by statusNotes (NEW!)
python3 scripts/exchange_mail.py notes # List notes
python3 scripts/exchange_mail.py notes --limit 10 # Limit results
Note:
Email IDs
Each email gets stable 8-char hex ID (e.g., b7bc8d99). Use for all commands.
Output Format
π§ 9 unread emails today:βββ Internal (4) βββ
[b7bc8d99] [13:57] John Smith
Re: Project Discussion
βββ External (5) βββ
[43e56cc9] [09:50] newsletter@company.com
Weekly Update
Batch Flags
--external - Only external emails (outside your domain)--internal - Only internal emails (your domain)--all - All emails--days N - Look back N days (default: today only)Environment Variables
Required in shell config:
export EXCHANGE_SERVER="mail.company.com"
export EXCHANGE_EMAIL="user@company.com"
export EXCHANGE_USERNAME="username"
export EXCHANGE_PASSWORD="password"
Optional:
export EXCHANGE_DOMAIN="domain" # Windows domain if required
export EXCHANGE_DISABLE_SSL_VERIFY=1 # Only if you need to disable SSL verification (not recommended)
Note: The script will also load environment variables from a .env file in the script directory (skills/exchange-skills/scripts/.env) if it exists.
Workflow Examples
# Morning: check β read β reply β archive spam
python3 scripts/exchange_mail.py list
python3 scripts/exchange_mail.py read abc123
python3 scripts/exchange_mail.py reply abc123 "Thanks!"
python3 scripts/exchange_mail.py archive --externalWeekly cleanup
python3 scripts/exchange_mail.py archive --external --days 7