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.