7.1k★by foeken
clippy – OpenClaw Skill
clippy is an OpenClaw Skills integration for communication workflows. Microsoft 365 / Outlook CLI for calendar and email. Use when managing Outlook calendar (view, create, update, delete events, find meeting times, respond to invitations), sending/reading emails, or searching for people/rooms in the organization.
Skill Snapshot
| name | clippy |
| description | Microsoft 365 / Outlook CLI for calendar and email. Use when managing Outlook calendar (view, create, update, delete events, find meeting times, respond to invitations), sending/reading emails, or searching for people/rooms in the organization. OpenClaw Skills integration. |
| owner | foeken |
| repository | foeken/clippy |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @foeken/clippy |
| last updated | Feb 7, 2026 |
Maintainer

name: clippy description: Microsoft 365 / Outlook CLI for calendar and email. Use when managing Outlook calendar (view, create, update, delete events, find meeting times, respond to invitations), sending/reading emails, or searching for people/rooms in the organization. metadata: {"clawdbot":{"requires":{"bins":["clippy"]}}}
Clippy - Microsoft 365 CLI
Source: https://github.com/foeken/clippy
Works through the M365 web UI via browser automation (Playwright), not the Graph API. No Azure AD app registration required - just login with your browser.
Install
git clone https://github.com/foeken/clippy.git
cd clippy && bun install
bun run src/cli.ts --help
Or link globally: bun link
Authentication
# Interactive login (opens browser, establishes session)
clippy login --interactive
# Check auth status
clippy whoami
Keepalive (recommended)
Keep a browser session alive to prevent token expiry:
# Start keepalive (keeps browser open, refreshes every 10min)
clippy keepalive --interval 10
For persistent operation, set up as a launchd service (macOS) or systemd (Linux).
Health monitoring: Keepalive writes to ~/.config/clippy/keepalive-health.txt on each successful refresh. Check if this file is stale (>15min) to detect failures.
Calendar
# Today's events
clippy calendar
# Specific day
clippy calendar --day tomorrow
clippy calendar --day monday
clippy calendar --day 2024-02-15
# Week view
clippy calendar --week
# With details (description, attendees)
clippy calendar --details
Create Events
clippy create-event "Title" 09:00 10:00
# Full options
clippy create-event "Meeting" 14:00 15:00 \
--day tomorrow \
--description "Meeting notes" \
--attendees "alice@company.com,bob@company.com" \
--teams \
--find-room
# Recurring
clippy create-event "Standup" 09:00 09:15 --repeat daily
clippy create-event "Sync" 14:00 15:00 --repeat weekly --days mon,wed,fri
Update/Delete Events
clippy update-event 1 --title "New Title"
clippy update-event 1 --start 10:00 --end 11:00
clippy delete-event 1
clippy delete-event 1 --message "Need to reschedule"
Respond to Invitations
clippy respond # List pending
clippy respond accept --id <eventId>
clippy respond decline --id <eventId> --message "Conflict"
clippy respond tentative --id <eventId>
Find Meeting Times
clippy findtime
clippy findtime --attendees "alice@company.com,bob@company.com"
clippy findtime --duration 60 --days 5
# Inbox
clippy mail
clippy mail --unread
clippy mail -n 20
clippy mail --search "invoice"
# Other folders
clippy mail sent
clippy mail drafts
clippy mail archive
# Read email
clippy mail -r <number>
# Download attachments
clippy mail -d <number> -o ~/Downloads
Send Email
clippy send \
--to "recipient@example.com" \
--subject "Subject" \
--body "Message body"
# With CC, attachments, markdown
clippy send \
--to "alice@example.com" \
--cc "manager@example.com" \
--subject "Report" \
--body "**See attached**" \
--markdown \
--attach "report.pdf"
Reply/Forward
clippy mail --reply <number> --message "Thanks!"
clippy mail --reply-all <number> --message "Got it"
clippy mail --forward <number> --to-addr "colleague@example.com"
Email Actions
clippy mail --mark-read <number>
clippy mail --flag <number>
clippy mail --move <number> --to archive
People/Room Search
clippy find "john" # People
clippy find "conference" --rooms # Rooms
JSON Output
clippy calendar --json
clippy mail --json
Configuration
Profile directory can be overridden:
export CLIPPY_PROFILE_DIR=~/.config/clippy/my-profile
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
Configuration
Profile directory can be overridden: ```bash export CLIPPY_PROFILE_DIR=~/.config/clippy/my-profile ```
FAQ
How do I install clippy?
Run openclaw add @foeken/clippy in your terminal. This installs clippy into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/foeken/clippy. Review commits and README documentation before installing.
