outlook-calendar-automation
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.
By sickn33 · 1,001 installs
npx skills add sickn33/agentic-awesome-skills --skill outlook-calendar-automation
Source repository · Upstream listing
Outlook Calendar Automation via Rube MCP
Automate Outlook Calendar operations through Composio's Outlook toolkit via Rube MCP.
Prerequisites
Rube MCP must be connected (RUBE SEARCH TOOLS available)
Active Outlook connection via RUBE MANAGE CONNECTIONS with toolkit outlook
Always call RUBE SEARCH TOOLS first to get current tool schemas
Setup
Get 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.
1. Verify Rube MCP is available by confirming RUBE SEARCH TOOLS responds
2. Call RUBE MANAGE CONNECTIONS with toolkit outlook
3. If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth
4. Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create Calendar Events
When to use : User wants to schedule a new event on their Outlook calendar
Tool sequence :
1. OUTLOOK LIST CALENDARS List available calendars [Optional]
2. OUTLOOK CALENDAR CREATE EVENT Create the event [Required]
Key parameters :
subject : Event title
start 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 objects
body : Event description (plain text or HTML)
is html : Set true if body contains HTML
location : Physical location string
is online meeting : Set true for Teams meeting link
online meeting provider : 'teamsForBusiness' for Teams integration
show as : 'free', 'tentative', 'busy', 'oof'
Pitfalls :
start datetime must be chronologically before end datetime
time zone is required and must be a valid IANA or Windows timezone name
Adding attendees can trigger invitation emails immediately
To generate a Teams meeting link, set BOTH is online meeting=true AND online meeting provider='teamsForBusiness'
user id defaults to 'me'; use email or UUID for other users' calendars
2. List and Search Events
When to use : User wants to find events on their calendar
Tool sequence :
1. OUTLOOK GET MAILBOX SETTINGS Get user timezone for accurate queries [Prerequisite]
2. OUTLOOK LIST EVENTS Search events with filters [Required]
3. OUTLOOK GET EVENT Get full details for a specific event [Optional]
4. 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 return
orderby : Sort criteria (e.g., ['start/dateTime desc'])
top : Results per page (1 999)
timezone : Display timezone for results
start datetime / end datetime : For CALENDAR VIEW time window (UTC with Z suffix)
Pitfalls :
OData filter datetime values require single quotes and Z suffix
Use 'start/dateTime' for event start filtering, NOT 'receivedDateTime' (that is for emails)
'createdDateTime' supports orderby/select but NOT filtering
Pagination: follow @odata.nextLink until all pages are collected
CALENDAR VIEW is better for "what's on my calendar today" queries (includes spanning events)
LIST EVENTS is better for keyword/category filtering
Response events have start/end nested as start.dateTime and end.dateTime
3. Update Events
When to use : User wants to modify an existing calendar event
Tool sequence :
1. OUTLOOK LIST EVENTS Find the event to update [Prerequisite]
2. 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 times
attendees : Updated attendee list (replaces existing if provided)
body : Updated description with contentType and content
location : Updated location
Pitfalls :
UPDATE merges provided fields with existing event; unspecified fields are preserved
Providing attendees replaces the ENTIRE attendee list; include all desired attendees
Providing categories replaces the ENTIRE category list
Updating times may trigger re sends to attendees
event id is required; obtain from LIST EVENTS first
4. Delete Events and Decline Invitations
When to use : User wants to remove an event or decline a meeting invitation
Tool sequence :
1. OUTLOOK DELETE EVENT Delete an event [Optional]
2. OUTLOOK DECLINE EVENT Decline a meeting invitation [Optional]
Key parameters :
event id : Event to delete or decline
send notifications : Send cancellation notices to attendees (default true)
comment : Reason for declining (for DECLINE EVENT)
proposedNewTime : Suggest alternative time when declining
Pitfalls :
Deletion with send notifications=true sends cancellation emails
Declining supports proposing a new time with start/end in ISO 8601 format
Deleting a recurring event master deletes all occurrences
sendResponse in DECLINE EVENT controls whether the organizer is notified
5. Find Available Meeting Times
When to use : User wants to find optimal meeting slots across multiple people
Tool sequence :
1. OUTLOOK FIND MEETING TIMES Get meeting time suggestions [Required]
2. OUTLOOK GET SCHEDULE Check free/busy for specific people [Alternative]
Key parameters :
attendees : Array of attendee objects with email and type
meetingDuration : ISO 8601 duration (e.g., 'PT1H' for 1 hour, 'PT30M' for 30 min)
timeConstraint : Time slots to search within
minimumAttendeePercentage : Minimum confidence threshold (0 100)
Schedules : Email array for GET SCHEDULE
StartTime / EndTime : Time window for schedule lookup (max 62 days)
Pitfalls :
FIND MEETING TIMES searches within work hours by default; use activityDomain='unrestricted' for 24/7
Time constraint time slots require dateTime and timeZone for both start and end
GET SCHEDULE period cannot exceed 62 days
Meeting suggestions respect attendee availability but may return suboptimal times for complex groups
Common Patterns
Event ID Resolution
OData Filter Syntax for Calendar
Time range filter :
Subject contains :
Combined :
Timezone Handling
Get user timezone: OUTLOOK GET MAILBOX SETTINGS with select=['timeZone']
Use consistent timezone in filter datetime values
Calendar View requires UTC timestamps with Z suffix
LIST EVENTS filter accepts timezone in datetime values
Online Meeting Creation
Known Pitfalls
DateTime Formats :
ISO 8601 format required: '2025 01 03T10:00:00'
Calendar View requires UTC with Z: '2025 01 03T10:00:00Z'
Filter values need single quotes: "'2025 01 03T00:00:00Z'"
Timezone mismatches shift event boundaries; always resolve user timezone first
OData Filter Errors :
400 Bad Request usually indicates filter syntax issues
Not all event properties support filtering (createdDateTime does not)
Retry with adjusted syntax/bounds on 400 errors
Valid filter fields: start/dateTime, end/dateTime, subject, categories, isAllDay
Attendee Management :
Adding attendees triggers invitation emails
Updating attendees replaces the full list; include all desired attendees
Attendee types: 'required', 'optional', 'resource'
Calendar delegation affects which calendars are accessible
Response Structure :
Events nested at response.data.value
Event times at event.start.dateTime and event.end.dateTime
Calendar View may nest at data.results[i].response.data.value
Parse defensively with fallbacks for different nesting levels
Quick Reference
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
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
Use this skill only when the task clearly matches the scope described above.
Do not treat the output as a substitute for environment specific validation, testing, or expert review.
Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.