Clippy - Microsoft 365 CLI

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/re…

Dreetje

@foeken

Install

$ openclaw skills install @foeken/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

Email

# 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

Related skills

Outlook Inbox

@hith3sh

Search Outlook mail, read threads, manage drafts, send or reply to email, and manage calendar events via Microsoft Graph. Use this skill when users want to m...

325.4k

Office 365 Connector

@tirandagan

Office 365 / Outlook connector for email (read/send), calendar (read/write), and contacts (read/write) using resilient OAuth authentication. NOW WITH MULTI-ACCOUNT SUPPORT! Manage multiple Microsoft 365 identities from a single skill. Solves the difficulty connecting to Office 365 email, calendar, and contacts. Uses Microsoft Graph API with comprehensive Azure App Registration setup guide. Perfect for accessing your Microsoft 365/Outlook data from OpenClaw.

54.3k

Outlook

@jotamed

Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.

2011k

Morning Email Rollup

@am-will

Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries

165.4k

Instantly

@byungkyu

Instantly API integration with managed OAuth. Cold email outreach platform for managing campaigns, leads, accounts, and analytics. Use this skill when users want to create campaigns, manage leads, send emails, or view analytics. For other third party apps, use the api-gateway skill

42.1k

AgentMail

@adboio

API-first email platform designed for AI agents. Create and manage dedicated email inboxes, send and receive emails programmatically, and handle email-based workflows with webhooks and real-time events. Use when you need to set up agent email identity, send emails from agents, handle incoming email workflows, or replace traditional email providers like Gmail with agent-friendly infrastructure.

6637k