[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-429b5481-6445-40ea-8ecf-a3fef0ec6a94":3,"$fxGkJ47qXBS5KU4uvHlJ_i-6UPLUsK6ATkSMIBIWLrdg":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"429b5481-6445-40ea-8ecf-a3fef0ec6a94","outlook-automation","通过Rube MCP（Composio）自动化Outlook任务：电子邮件、日历、联系人、文件夹、附件。始终首先使用搜索工具查找当前模式。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: outlook-automation\ndescription: \"Automate Outlook tasks via Rube MCP (Composio): emails, calendar, contacts, folders, attachments. Always search tools first for current schemas.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Outlook Automation via Rube MCP\n\nAutomate Microsoft Outlook operations through Composio's Outlook toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Outlook connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `outlook`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `outlook`\n3. If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Search and Filter Emails\n\n**When to use**: User wants to find specific emails across their mailbox\n\n**Tool sequence**:\n1. `OUTLOOK_SEARCH_MESSAGES` - Search with KQL syntax across all folders [Required]\n2. `OUTLOOK_GET_MESSAGE` - Get full message details [Optional]\n3. `OUTLOOK_LIST_OUTLOOK_ATTACHMENTS` - List message attachments [Optional]\n4. `OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT` - Download attachment [Optional]\n\n**Key parameters**:\n- `query`: KQL search string (from:, to:, subject:, received:, hasattachment:)\n- `from_index`: Pagination start (0-based)\n- `size`: Results per page (max 25)\n- `message_id`: Message ID (use hitId from search results)\n\n**Pitfalls**:\n- Only works with Microsoft 365\u002FEnterprise accounts (not @hotmail.com\u002F@outlook.com)\n- Pagination relies on hitsContainers[0].moreResultsAvailable; stop only when false\n- Use hitId from search results as message_id for downstream calls, not resource.id\n- Index latency: very recent emails may not appear immediately\n- Inline images appear as attachments; filter by mimetype for real documents\n\n### 2. Query Emails in a Folder\n\n**When to use**: User wants to list emails in a specific folder with OData filters\n\n**Tool sequence**:\n1. `OUTLOOK_LIST_MAIL_FOLDERS` - List mail folders to get folder IDs [Prerequisite]\n2. `OUTLOOK_QUERY_EMAILS` - Query emails with structured filters [Required]\n\n**Key parameters**:\n- `folder`: Folder name ('inbox', 'sentitems', 'drafts') or folder ID\n- `filter`: OData filter (e.g., `isRead eq false and importance eq 'high'`)\n- `top`: Max results (1-1000)\n- `orderby`: Sort field and direction\n- `select`: Array of fields to return\n\n**Pitfalls**:\n- QUERY_EMAILS searches a SINGLE folder only; use SEARCH_MESSAGES for cross-folder search\n- Custom folders require folder IDs, not display names; use LIST_MAIL_FOLDERS\n- Always check response['@odata.nextLink'] for pagination\n- Cannot filter by recipient or body content; use SEARCH_MESSAGES for that\n\n### 3. Manage Calendar Events\n\n**When to use**: User wants to list, search, or inspect calendar events\n\n**Tool sequence**:\n1. `OUTLOOK_LIST_EVENTS` - List events with filters [Optional]\n2. `OUTLOOK_GET_CALENDAR_VIEW` - Get events in a time window [Optional]\n3. `OUTLOOK_GET_EVENT` - Get specific event details [Optional]\n4. `OUTLOOK_LIST_CALENDARS` - List available calendars [Optional]\n5. `OUTLOOK_GET_SCHEDULE` - Get free\u002Fbusy info [Optional]\n\n**Key parameters**:\n- `filter`: OData filter (use start\u002FdateTime, NOT receivedDateTime)\n- `start_datetime`\u002F`end_datetime`: ISO 8601 for calendar view\n- `timezone`: IANA timezone (e.g., 'America\u002FNew_York')\n- `calendar_id`: Optional non-primary calendar ID\n- `select`: Fields to return\n\n**Pitfalls**:\n- Use calendar event properties only (start\u002FdateTime, end\u002FdateTime), NOT email properties (receivedDateTime)\n- Calendar view requires start_datetime and end_datetime\n- Recurring events need `expand_recurring_events=true` to see individual occurrences\n- Decline status is per-attendee via attendees[].status.response\n\n### 4. Manage Contacts\n\n**When to use**: User wants to list, create, or organize contacts\n\n**Tool sequence**:\n1. `OUTLOOK_LIST_CONTACTS` - List contacts [Optional]\n2. `OUTLOOK_CREATE_CONTACT` - Create a new contact [Optional]\n3. `OUTLOOK_GET_CONTACT_FOLDERS` - List contact folders [Optional]\n4. `OUTLOOK_CREATE_CONTACT_FOLDER` - Create contact folder [Optional]\n\n**Key parameters**:\n- `givenName`\u002F`surname`: Contact name\n- `emailAddresses`: Array of email objects\n- `displayName`: Full display name\n- `contact_folder_id`: Optional folder for contacts\n\n**Pitfalls**:\n- Contact creation supports many fields but only givenName or surname is needed\n\n### 5. Manage Mail Folders\n\n**When to use**: User wants to organize mail folders\n\n**Tool sequence**:\n1. `OUTLOOK_LIST_MAIL_FOLDERS` - List top-level folders [Required]\n2. `OUTLOOK_LIST_CHILD_MAIL_FOLDERS` - List subfolders [Optional]\n3. `OUTLOOK_CREATE_MAIL_FOLDER` - Create a new folder [Optional]\n\n**Key parameters**:\n- `parent_folder_id`: Well-known name or folder ID\n- `displayName`: New folder name\n- `include_hidden_folders`: Show hidden folders\n\n**Pitfalls**:\n- Well-known folder names: 'inbox', 'sentitems', 'drafts', 'deleteditems', 'junkemail', 'archive'\n- Custom folder operations require the folder ID, not display name\n\n## Common Patterns\n\n### KQL Search Syntax\n\n**Property filters**:\n- `from:user@example.com` - From sender\n- `to:recipient@example.com` - To recipient\n- `subject:invoice` - Subject contains\n- `received>=2025-01-01` - Date filter\n- `hasattachment:yes` - Has attachments\n\n**Combinators**:\n- `AND` - Both conditions\n- `OR` - Either condition\n- Parentheses for grouping\n\n### OData Filter Syntax\n\n**Email filters**:\n- `isRead eq false` - Unread emails\n- `importance eq 'high'` - High importance\n- `hasAttachments eq true` - Has attachments\n- `receivedDateTime ge 2025-01-01T00:00:00Z` - Date filter\n\n**Calendar filters**:\n- `start\u002FdateTime ge '2025-01-01T00:00:00Z'` - Events after date\n- `contains(subject, 'Meeting')` - Subject contains text\n\n## Known Pitfalls\n\n**Account Types**:\n- SEARCH_MESSAGES requires Microsoft 365\u002FEnterprise accounts\n- Personal accounts (@hotmail.com, @outlook.com) have limited API access\n\n**Field Confusion**:\n- Email properties (receivedDateTime) differ from calendar properties (start\u002FdateTime)\n- Do NOT use email fields in calendar queries or vice versa\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Search emails | OUTLOOK_SEARCH_MESSAGES | query, from_index, size |\n| Query folder | OUTLOOK_QUERY_EMAILS | folder, filter, top |\n| Get message | OUTLOOK_GET_MESSAGE | message_id |\n| List attachments | OUTLOOK_LIST_OUTLOOK_ATTACHMENTS | message_id |\n| Download attachment | OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT | message_id, attachment_id |\n| List folders | OUTLOOK_LIST_MAIL_FOLDERS | (none) |\n| Child folders | OUTLOOK_LIST_CHILD_MAIL_FOLDERS | parent_folder_id |\n| List events | OUTLOOK_LIST_EVENTS | filter, timezone |\n| Calendar view | OUTLOOK_GET_CALENDAR_VIEW | start_datetime, end_datetime |\n| Get event | OUTLOOK_GET_EVENT | event_id |\n| List calendars | OUTLOOK_LIST_CALENDARS | (none) |\n| Free\u002Fbusy | OUTLOOK_GET_SCHEDULE | schedules, times |\n| List contacts | OUTLOOK_LIST_CONTACTS | top, filter |\n| Create contact | OUTLOOK_CREATE_CONTACT | givenName, emailAddresses |\n| Contact folders | OUTLOOK_GET_CONTACT_FOLDERS | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,168,441,"2026-05-16 13:33:10",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"a27cec58-732d-46a6-8bdb-d19af7730648","1.0.0","outlook-automation.zip",3197,"uploads\u002Fskills\u002F429b5481-6445-40ea-8ecf-a3fef0ec6a94\u002Foutlook-automation.zip","2ec53d990b8295866b2cc75657ae79ade0a1568f566c4cdfbe788e09a77b417c","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":7906}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]