← Back to Skills Marketplace
derekhsu

Exchange Skills

by Derek Hsu · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
164
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install 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,...
README (SKILL.md)

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 list

# List 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 output

# Read email
python3 scripts/exchange_mail.py read \x3Cid>

# Reply
python3 scripts/exchange_mail.py reply \x3Cid> "Your message"

# Mark as read
python3 scripts/exchange_mail.py mark-read \x3Cid>
python3 scripts/exchange_mail.py mark-read --external
python3 scripts/exchange_mail.py mark-read --internal
python3 scripts/exchange_mail.py mark-read --all

# Archive
python3 scripts/exchange_mail.py archive \x3Cid>
python3 scripts/exchange_mail.py archive --external
python3 scripts/exchange_mail.py archive --internal --days 7

# Calendar (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 output

# Contacts (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 output

# Tasks (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 status

# Notes (NEW!)
python3 scripts/exchange_mail.py notes                 # List notes
python3 scripts/exchange_mail.py notes --limit 10      # Limit results

Note:

  • Contact search requires access to Exchange contact folders. If no contacts are found, check folder permissions on the Exchange server.
  • Tasks and Notes require the corresponding folders to exist in the Exchange account.

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] [email protected]
        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="[email protected]"
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 --external

# Weekly cleanup
python3 scripts/exchange_mail.py archive --external --days 7
Usage Guidance
This skill appears to be a legitimate Exchange CLI client, but it requires your Exchange credentials (including password) to run. Before installing: (1) verify and trust the skill source/author; (2) prefer using a restricted or app-specific account rather than your primary mailbox password; (3) store credentials in a secure secrets manager or an environment isolated to this skill rather than a global shell profile; (4) note there is no automated install for Python dependencies—install exchangelib from PyPI and inspect it if needed; (5) avoid setting EXCHANGE_DISABLE_SSL_VERIFY unless you understand the implications; and (6) review the script if you need absolute assurance there is no unexpected network exfiltration. If you cannot trust the publisher, do not supply real credentials.
Capability Analysis
Type: OpenClaw Skill Name: exchange-skills Version: 1.0.2 The skill provides a legitimate CLI for managing Microsoft Exchange accounts, including emails, calendar, and contacts via the exchangelib library. It correctly handles sensitive credentials through environment variables and includes a documented option to bypass SSL verification for corporate environments. No evidence of data exfiltration or malicious intent was found in scripts/exchange_mail.py or the instructions in SKILL.md.
Capability Assessment
Purpose & Capability
Name/description (Exchange mail/calendar/contacts/tasks/notes) align with required environment variables (EXCHANGE_SERVER, EXCHANGE_EMAIL, EXCHANGE_USERNAME, EXCHANGE_PASSWORD) and the included Python script which uses exchangelib to talk to an Exchange server.
Instruction Scope
SKILL.md and the script limit actions to fetching/reading/replying/marking/archiving emails and listing calendar/contacts/tasks/notes via Exchange. The script loads a local .env in its script directory and reads only Exchange-related environment variables; it does not reference or transmit data to other external endpoints beyond the Exchange server.
Install Mechanism
This is an instruction+code skill with no install spec. The script requires the third‑party Python package exchangelib (pip). Because there is no automated install step, the user/agent must install dependencies manually; ensure exchangelib is installed from a trusted source (PyPI) before use.
Credentials
Requested environment variables (server, email, username, password) are expected for Exchange access and the primary credential is EXCHANGE_PASSWORD. Minor metadata inconsistency: SKILL.md references EXCHANGE_DISABLE_SSL_VERIFY as an optional variable but the registry metadata's optional_env only lists EXCHANGE_DOMAIN; this is a small documentation mismatch but not a behavioral red flag.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide settings. It reads a .env file from its own script directory but does not write persistent secrets or change agent configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install exchange-skills
  3. After installation, invoke the skill by name or use /exchange-skills
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Fix: SSL verification is now conditional - only disabled when EXCHANGE_DISABLE_SSL_VERIFY=1 is explicitly set
v1.0.1
Security fixes: added required env vars metadata, fixed .env loading path, made SSL verification disable optional
v1.0.0
Initial release with email, calendar, contacts, tasks, and notes management
Metadata
Slug exchange-skills
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Exchange Skills?

Full email, calendar, contacts, tasks, and notes management for Microsoft Exchange/Outlook. Use when Claude needs to list unread emails, read email content,... It is an AI Agent Skill for Claude Code / OpenClaw, with 164 downloads so far.

How do I install Exchange Skills?

Run "/install exchange-skills" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Exchange Skills free?

Yes, Exchange Skills is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Exchange Skills support?

Exchange Skills is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Exchange Skills?

It is built and maintained by Derek Hsu (@derekhsu); the current version is v1.0.2.

💬 Comments