Automate Outlook Calendar tasks via Rube MCP (Composio): create events, manage attendees, find meeting times, and handle invitations. Always search tools first for current schemas.
npx skills add https://github.com/davepoon/buildwithclaude --skill outlook-calendar-automation
Not in the registry: rube
The skill names a server we cannot find in the official MCP registry. It may be private, renamed, or never published — either way, the skill will not work until you have it.
Automate Outlook Calendar operations through Composio's Outlook toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/outlook
RUBE_MANAGE_CONNECTIONS with toolkit outlookRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit outlookWhen to use: User wants to schedule a new event on their Outlook calendar
Tool sequence:
OUTLOOK_LIST_CALENDARS - List available calendars [Optional]OUTLOOK_CALENDAR_CREATE_EVENT - Create the event [Required]Key parameters:
subject: Event titlestart_datetime: ISO 8601 start time (e.g., '2025-01-03T10:00:00')end_datetime: ISO 8601 end time (must be after start)time_zone: IANA or Windows timezone (e.g., 'America/New_York', 'Pacific Standard Time')attendees_info: Array of email strings or attendee objectsbody: Event description (plain text or HTML)is_html: Set true if body contains HTMLlocation: Physical location stringis_online_meeting: Set true for Teams meeting linkonline_meeting_provider: 'teamsForBusiness' for Teams integrationshow_as: 'free', 'tentative', 'busy', 'oof'Pitfalls:
When to use: User wants to find events on their calendar
Tool sequence:
OUTLOOK_GET_MAILBOX_SETTINGS - Get user timezone for accurate queries [Prerequisite]OUTLOOK_LIST_EVENTS - Search events with filters [Required]OUTLOOK_GET_EVENT - Get full details for a specific event [Optional]OUTLOOK_GET_CALENDAR_VIEW - Get events active during a time window [Alternative]Key parameters:
filter: OData filter string (e.g., "start/dateTime ge '2024-07-01T00:00:00Z'")select: Array of properties to returnorderby: Sort criteria (e.g., ['start/dateTime desc'])top: Results per page (1-999)timezone: Display timezone for resultsstart_datetime/end_datetime: For CALENDAR_VIEW time window (UTC with Z suffix)Pitfalls:
When to use: User wants to modify an existing calendar event
Tool sequence:
OUTLOOK_LIST_EVENTS - Find the event to update [Prerequisite]OUTLOOK_UPDATE_CALENDAR_EVENT - Update the event [Required]Key parameters:
event_id: Unique event identifier (from LIST_EVENTS)subject: New event title (optional)start_datetime/end_datetime: New times (optional)time_zone: Timezone for new timesattendees: Updated attendee list (replaces existing if provided)body: Updated description with contentType and contentlocation: Updated locationPitfalls:
When to use: User wants to remove an event or decline a meeting invitation
Tool sequence:
OUTLOOK_DELETE_EVENT - Delete an event [Optional]OUTLOOK_DECLINE_EVENT - Decline a meeting invitation [Optional]Key parameters:
event_id: Event to delete or declinesend_notifications: Send cancellation notices to attendees (default true)comment: Reason for declining (for DECLINE_EVENT)proposedNewTime: Suggest alternative time when decliningPitfalls:
When to use: User wants to find optimal meeting slots across multiple people
Tool sequence:
OUTLOOK_FIND_MEETING_TIMES - Get meeting time suggestions [Required]OUTLOOK_GET_SCHEDULE - Check free/busy for specific people [Alternative]Key parameters:
attendees: Array of attendee objects with email and typemeetingDuration: ISO 8601 duration (e.g., 'PT1H' for 1 hour, 'PT30M' for 30 min)timeConstraint: Time slots to search withinminimumAttendeePercentage: Minimum confidence threshold (0-100)Schedules: Email array for GET_SCHEDULEStartTime/EndTime: Time window for schedule lookup (max 62 days)Pitfalls:
1. Call OUTLOOK_LIST_EVENTS with time-bound filter
2. Find target event by subject or other criteria
3. Extract event id (e.g., 'AAMkAGI2TAAA=')
4. Use in UPDATE, DELETE, or GET_EVENT calls
Time range filter:
filter: "start/dateTime ge '2024-07-01T00:00:00Z' and start/dateTime le '2024-07-31T23:59:59Z'"
Subject contains:
filter: "contains(subject, 'Project Review')"
Combined:
filter: "contains(subject, 'Review') and categories/any(c:c eq 'Work')"
OUTLOOK_GET_MAILBOX_SETTINGS with select=['timeZone']1. Set is_online_meeting: true
2. Set online_meeting_provider: 'teamsForBusiness'
3. Create event with OUTLOOK_CALENDAR_CREATE_EVENT
4. Teams join link available in response onlineMeeting field
5. Or retrieve via OUTLOOK_GET_EVENT for the full join URL
DateTime Formats:
OData Filter Errors:
Attendee Management:
Response Structure:
| Task | Tool Slug | Key Params |
|------|-----------|------------|
| Create event | OUTLOOK_CALENDAR_CREATE_EVENT | subject, start_datetime, end_datetime, time_zone |
| List events | OUTLOOK_LIST_EVENTS | filter, select, top, timezone |
| Get event details | OUTLOOK_GET_EVENT | event_id |
| Calendar view | OUTLOOK_GET_CALENDAR_VIEW | start_datetime, end_datetime |
| Update event | OUTLOOK_UPDATE_CALENDAR_EVENT | event_id, subject, start_datetime |
| Delete event | OUTLOOK_DELETE_EVENT | event_id, send_notifications |
| Decline event | OUTLOOK_DECLINE_EVENT | event_id, comment |
| Find meeting times | OUTLOOK_FIND_MEETING_TIMES | attendees, meetingDuration |
| Get schedule | OUTLOOK_GET_SCHEDULE | Schedules, StartTime, EndTime |
| List calendars | OUTLOOK_LIST_CALENDARS | user_id |
| Mailbox settings | OUTLOOK_GET_MAILBOX_SETTINGS | select |
*Powered by Composio*
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
Intelligently organizes your files and folders across your computer by understanding context, finding duplicates, suggesting better structures, and automating cleanup tasks. Reduces cognitive load and keeps your digital workspace tidy without manual effort.
Generates creative domain name ideas for your project and checks availability across multiple TLDs (.com, .io, .dev, .ai, etc.). Saves hours of brainstorming and manual checking.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls.
Creative research ideation and exploration. Use for open-ended brainstorming sessions, exploring interdisciplinary connections, challenging assumptions, or identifying research gaps. Best for early-stage research planning when you do not have specific observations yet. For formulating testable hypotheses from data use hypothesis-generation.
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
Take davepoon/outlook-calendar-automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.