原始内容
Outlook Calendar Skill for Claude Code
A Claude Code Skill that reads your Outlook calendar via ICS subscription URL.
Features
- Read calendar events from Microsoft Outlook (M365)
- No admin approval required (uses ICS subscription)
- Query by date range (today, this week, specific dates)
- Timezone-aware (converts to local time)
- Automatic recurring event (RRULE) expansion
- Handles all Outlook DTSTART formats
Prerequisites
uv (Required)
This skill uses uv to run the ICS parser script with automatic dependency management.
Install uv:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with Homebrew
brew install uv
Verify installation:
uv --version
Installation
Option 1: Global (for personal use across all projects)
git clone https://github.com/keith-hung/Calendar-Skill.git
cd Calendar-Skill
./install.sh
Option 2: Project-level (for team use)
git clone https://github.com/keith-hung/Calendar-Skill.git
cd Calendar-Skill
./install.sh /path/to/your-project
Configuration
Step 1: Get your ICS URL from Outlook
⚠️ Important: ICS publishing is only available via Outlook Web (OWA). The macOS and Windows Outlook desktop apps do not have this feature.
Using Outlook Web (Required)
- Open Outlook Web in your browser
- Click Calendar icon in the left sidebar
- Click Settings (⚙️ gear icon, top right)
- Click View all Outlook settings at the bottom
- Navigate to: Calendar → Shared calendars
- Scroll down to Publish a calendar section
- Select your calendar from the dropdown
- Choose permission level:
- Can view all details - Recommended for personal use
- Can view titles and locations - Hide sensitive details
- Click Publish
- Copy the ICS link (not the HTML link)
┌─────────────────────────────────────────────────┐
│ Publish a calendar │
├─────────────────────────────────────────────────┤
│ Select a calendar: [Calendar ▼] │
│ Select permissions: [Can view all details ▼] │
│ │
│ [Publish] │
│ │
│ HTML: https://outlook.office365.com/.../html │
│ ICS: https://outlook.office365.com/.../ics ← Copy this │
└─────────────────────────────────────────────────┘
Why OWA Only?
| Client | Publish ICS | Subscribe ICS |
|---|---|---|
| Outlook Web (OWA) | ✅ Yes | ✅ Yes |
| Outlook for Mac | ❌ No | ✅ Yes |
| Outlook for Windows | ❌ No | ✅ Yes |
| Outlook Mobile | ❌ No | ❌ No |
Step 2: Configure the Skill
Edit the SKILL.md file and replace the placeholder with your ICS URL:
# Location depends on your installation:
# Project-level: .claude/skills/outlook-calendar/SKILL.md
# Global: ~/.claude/skills/outlook-calendar/SKILL.md
Find this line:
**ICS URL**: `<YOUR_ICS_URL_HERE>`
Replace <YOUR_ICS_URL_HERE> with your actual ICS URL:
**ICS URL**: `https://outlook.office365.com/owa/calendar/xxx/yyy/calendar.ics`
Usage
Once installed and configured, simply ask Claude Code about your calendar:
What meetings do I have today?
Show my calendar for this week
Am I free tomorrow afternoon?
What's on my schedule for 12/5?
Claude will automatically invoke this skill and display your calendar events.
Example Output
| Time | Event | Location |
|---|---|---|
| 09:00-10:00 | Weekly Standup | Meeting Room A |
| 14:00-15:00 | 1:1 with Manager | Microsoft Teams |
| 16:00-17:00 | Sprint Review | Conference Room B |
Limitations
- Read-only: Cannot create, modify, or delete events
- Polling-based: Changes reflect when ICS is re-fetched (not real-time push)
- Requires ICS publish: Your organization must allow calendar publishing
Troubleshooting
| Issue | Solution |
|---|---|
uv: command not found |
Install uv (see Prerequisites section) |
| Empty calendar | Check if ICS URL in SKILL.md is configured correctly |
| Cannot publish calendar | Contact IT admin - this feature may be disabled |
| Events not updating | ICS reflects server-side data; wait a few minutes |
| Placeholder still showing | Edit SKILL.md and replace <YOUR_ICS_URL_HERE> |
License
MIT