outlook-automation

通过Rube MCP(Composio)自动化Outlook任务:邮件、日历、联系人、文件夹、附件处理。始终优先搜索工具以获取当前架构信息。

查看详情
name:outlook-automationdescription:"Automate Outlook tasks via Rube MCP (Composio): emails, calendar, contacts, folders, attachments. Always search tools first for current schemas."requires:mcp:[rube]

Outlook Automation via Rube MCP

Automate Microsoft Outlook 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.


  • Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds

  • Call RUBE_MANAGE_CONNECTIONS with toolkit outlook

  • If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth

  • Confirm connection status shows ACTIVE before running any workflows
  • Core Workflows

    1. Search and Filter Emails

    When to use: User wants to find specific emails across their mailbox

    Tool sequence:

  • OUTLOOK_SEARCH_MESSAGES - Search with KQL syntax across all folders [Required]

  • OUTLOOK_GET_MESSAGE - Get full message details [Optional]

  • OUTLOOK_LIST_OUTLOOK_ATTACHMENTS - List message attachments [Optional]

  • OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT - Download attachment [Optional]
  • Key parameters:

  • query: KQL search string (from:, to:, subject:, received:, hasattachment:)

  • from_index: Pagination start (0-based)

  • size: Results per page (max 25)

  • message_id: Message ID (use hitId from search results)
  • Pitfalls:

  • Only works with Microsoft 365/Enterprise accounts (not @hotmail.com/@outlook.com)

  • Pagination relies on hitsContainers[0].moreResultsAvailable; stop only when false

  • Use hitId from search results as message_id for downstream calls, not resource.id

  • Index latency: very recent emails may not appear immediately

  • Inline images appear as attachments; filter by mimetype for real documents
  • 2. Query Emails in a Folder

    When to use: User wants to list emails in a specific folder with OData filters

    Tool sequence:

  • OUTLOOK_LIST_MAIL_FOLDERS - List mail folders to get folder IDs [Prerequisite]

  • OUTLOOK_QUERY_EMAILS - Query emails with structured filters [Required]
  • Key parameters:

  • folder: Folder name ('inbox', 'sentitems', 'drafts') or folder ID

  • filter: OData filter (e.g., isRead eq false and importance eq 'high')

  • top: Max results (1-1000)

  • orderby: Sort field and direction

  • select: Array of fields to return
  • Pitfalls:

  • QUERY_EMAILS searches a SINGLE folder only; use SEARCH_MESSAGES for cross-folder search

  • Custom folders require folder IDs, not display names; use LIST_MAIL_FOLDERS

  • Always check response['@odata.nextLink'] for pagination

  • Cannot filter by recipient or body content; use SEARCH_MESSAGES for that
  • 3. Manage Calendar Events

    When to use: User wants to list, search, or inspect calendar events

    Tool sequence:

  • OUTLOOK_LIST_EVENTS - List events with filters [Optional]

  • OUTLOOK_GET_CALENDAR_VIEW - Get events in a time window [Optional]

  • OUTLOOK_GET_EVENT - Get specific event details [Optional]

  • OUTLOOK_LIST_CALENDARS - List available calendars [Optional]

  • OUTLOOK_GET_SCHEDULE - Get free/busy info [Optional]
  • Key parameters:

  • filter: OData filter (use start/dateTime, NOT receivedDateTime)

  • start_datetime/end_datetime: ISO 8601 for calendar view

  • timezone: IANA timezone (e.g., 'America/New_York')

  • calendar_id: Optional non-primary calendar ID

  • select: Fields to return
  • Pitfalls:

  • Use calendar event properties only (start/dateTime, end/dateTime), NOT email properties (receivedDateTime)

  • Calendar view requires start_datetime and end_datetime

  • Recurring events need expand_recurring_events=true to see individual occurrences

  • Decline status is per-attendee via attendees[].status.response
  • 4. Manage Contacts

    When to use: User wants to list, create, or organize contacts

    Tool sequence:

  • OUTLOOK_LIST_CONTACTS - List contacts [Optional]

  • OUTLOOK_CREATE_CONTACT - Create a new contact [Optional]

  • OUTLOOK_GET_CONTACT_FOLDERS - List contact folders [Optional]

  • OUTLOOK_CREATE_CONTACT_FOLDER - Create contact folder [Optional]
  • Key parameters:

  • givenName/surname: Contact name

  • emailAddresses: Array of email objects

  • displayName: Full display name

  • contact_folder_id: Optional folder for contacts
  • Pitfalls:

  • Contact creation supports many fields but only givenName or surname is needed
  • 5. Manage Mail Folders

    When to use: User wants to organize mail folders

    Tool sequence:

  • OUTLOOK_LIST_MAIL_FOLDERS - List top-level folders [Required]

  • OUTLOOK_LIST_CHILD_MAIL_FOLDERS - List subfolders [Optional]

  • OUTLOOK_CREATE_MAIL_FOLDER - Create a new folder [Optional]
  • Key parameters:

  • parent_folder_id: Well-known name or folder ID

  • displayName: New folder name

  • include_hidden_folders: Show hidden folders
  • Pitfalls:

  • Well-known folder names: 'inbox', 'sentitems', 'drafts', 'deleteditems', 'junkemail', 'archive'

  • Custom folder operations require the folder ID, not display name
  • Common Patterns

    KQL Search Syntax

    Property filters:

  • from:user@example.com - From sender

  • to:recipient@example.com - To recipient

  • subject:invoice - Subject contains

  • received>=2025-01-01 - Date filter

  • hasattachment:yes - Has attachments
  • Combinators:

  • AND - Both conditions

  • OR - Either condition

  • Parentheses for grouping
  • OData Filter Syntax

    Email filters:

  • isRead eq false - Unread emails

  • importance eq 'high' - High importance

  • hasAttachments eq true - Has attachments

  • receivedDateTime ge 2025-01-01T00:00:00Z - Date filter
  • Calendar filters:

  • start/dateTime ge '2025-01-01T00:00:00Z' - Events after date

  • contains(subject, 'Meeting') - Subject contains text
  • Known Pitfalls

    Account Types:

  • SEARCH_MESSAGES requires Microsoft 365/Enterprise accounts

  • Personal accounts (@hotmail.com, @outlook.com) have limited API access
  • Field Confusion:

  • Email properties (receivedDateTime) differ from calendar properties (start/dateTime)

  • Do NOT use email fields in calendar queries or vice versa
  • Quick Reference

    TaskTool SlugKey Params
    Search emailsOUTLOOK_SEARCH_MESSAGESquery, from_index, size
    Query folderOUTLOOK_QUERY_EMAILSfolder, filter, top
    Get messageOUTLOOK_GET_MESSAGEmessage_id
    List attachmentsOUTLOOK_LIST_OUTLOOK_ATTACHMENTSmessage_id
    Download attachmentOUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENTmessage_id, attachment_id
    List foldersOUTLOOK_LIST_MAIL_FOLDERS(none)
    Child foldersOUTLOOK_LIST_CHILD_MAIL_FOLDERSparent_folder_id
    List eventsOUTLOOK_LIST_EVENTSfilter, timezone
    Calendar viewOUTLOOK_GET_CALENDAR_VIEWstart_datetime, end_datetime
    Get eventOUTLOOK_GET_EVENTevent_id
    List calendarsOUTLOOK_LIST_CALENDARS(none)
    Free/busyOUTLOOK_GET_SCHEDULEschedules, times
    List contactsOUTLOOK_LIST_CONTACTStop, filter
    Create contactOUTLOOK_CREATE_CONTACTgivenName, emailAddresses
    Contact foldersOUTLOOK_GET_CONTACT_FOLDERS(none)