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.
Outlook Calendar Automation via Rube MCP
Automate Outlook Calendar operations through Composio's Outlook toolkit via Rube MCP.
Prerequisites
RUBE_MANAGE_CONNECTIONS with toolkit outlookRUBE_SEARCH_TOOLS first to get current tool schemasSetup
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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit outlookCore Workflows
1. Create Calendar Events
When 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:
2. List and Search Events
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:
3. Update Events
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:
4. Delete Events and Decline Invitations
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:
5. Find Available Meeting Times
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:
Common Patterns
Event ID Resolution
1. Call OUTLOOK_LIST_EVENTS with time-bound filter
Find target event by subject or other criteria
Extract event id (e.g., 'AAMkAGI2TAAA=')
Use in UPDATE, DELETE, or GET_EVENT calls OData Filter Syntax for Calendar
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')"Timezone Handling
OUTLOOK_GET_MAILBOX_SETTINGS with select=['timeZone']Online Meeting Creation
1. Set is_online_meeting: true
Set online_meeting_provider: 'teamsForBusiness'
Create event with OUTLOOK_CALENDAR_CREATE_EVENT
Teams join link available in response onlineMeeting field
Or retrieve via OUTLOOK_GET_EVENT for the full join URL Known Pitfalls
DateTime Formats:
OData Filter Errors:
Attendee Management:
Response Structure:
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 |