Created skills/msteams/SKILL.md with comprehensive documentation for: - Teams and channels management - Channel messages (send, retrieve, edit, delete) - Meeting scheduling and management - Chat conversations (1:1, group, meeting) - Common workflows for automation - API endpoint reference - Best practices and integration examples Follows SKILL.md format with YAML frontmatter. Compatibility: opencode
7.7 KiB
name, description, compatibility
| name | description | compatibility |
|---|---|---|
| msteams | Microsoft Teams Graph API integration for team communication and collaboration. Use when Opencode needs to interact with Teams for: (1) Managing channels and teams, (2) Sending and retrieving channel messages, (3) Creating and managing meetings, (4) Handling chat conversations, (5) Building automated team communication workflows. Triggers: 'Teams', 'channel', 'meeting', 'chat', 'team message', 'Microsoft Teams'. | opencode |
Microsoft Teams Graph API Integration
Integrate with Microsoft Teams via Graph API for team communication, meeting management, and collaboration workflows.
Quick Start
Teams Graph API provides comprehensive access to Teams functionality for automation workflows. Use this skill when building workflows that involve:
- Automated channel message posting
- Meeting scheduling and management
- Chat interaction and conversation handling
- Team and channel organization
Core API Capabilities
Teams & Channels
List teams
- Get all teams the user has access to
- Filter teams by display name or group ID
- Retrieve team membership and role information
Access channels
- Get all channels within a team
- Access standard channels, private channels, and shared channels
- Retrieve channel membership and settings
Manage channels
- Create new channels in teams
- Update channel properties (name, description)
- Archive or delete channels
- Manage channel members and permissions
Channel Messages
Send messages
- Post new messages to channels
- Send rich text and formatted content
- Attach files and images to messages
- Mention users or teams with @mentions
- Create adaptive cards for interactive messages
Retrieve messages
- Get channel message history
- Filter messages by date range or sender
- Load message replies and threads
- Access message attachments and reactions
Manage messages
- Edit existing channel messages
- Delete messages
- Pin important messages
- Add reactions and reactions management
Meetings
Create meetings
- Schedule online meetings via Teams
- Set meeting title, description, and duration
- Add participants and attendees
- Configure meeting options (recording, lobby, etc.)
Manage meetings
- Update meeting details
- Cancel meetings
- Get meeting recordings and transcripts
- Access meeting attendance reports
Meeting participation
- Join meetings via API (where supported)
- Get meeting links and join URLs
- Manage meeting chat during calls
Chat Conversations
List chats
- Get all chats the user participates in
- Filter by chat type (1:1, group, meeting)
- Access chat metadata and participant info
Send chat messages
- Send messages to 1:1 or group chats
- Send rich text and formatted content
- Attach files to chat messages
Retrieve chat messages
- Get chat message history
- Load message threads and replies
- Access message attachments and metadata
Manage chats
- Create new group chats
- Add or remove participants
- Update chat settings
- Archive or delete conversations
Common Workflows
Automated Channel Announcements
Broadcast information to team channels:
- Identify target team and channel via Graph API
- Prepare message content with rich text formatting
- Post message to channel using message endpoint
- Include attachments if needed
- Log or track message delivery
Meeting Scheduling Automation
Schedule recurring or one-off meetings:
- Create meeting object with required details
- Add attendees and configure options
- Use Graph API to create meeting in calendar
- Generate and share meeting link
- Send confirmation to participants
Chat-Based Notifications
Send notifications to users or groups via chat:
- Identify target chat (1:1 or group)
- Compose notification message
- Send via chat message endpoint
- Handle delivery confirmations
- Track response if needed
Content Retrieval & Reporting
Gather information from Teams conversations:
- Query channel or chat message history
- Filter by date, sender, or keywords
- Extract relevant content and attachments
- Compile report or summary
- Format for user consumption
Meeting Follow-up Workflows
Automate post-meeting actions:
- Retrieve meeting transcripts or recordings
- Extract action items or decisions
- Create follow-up tasks or messages
- Share summary with participants
- Schedule next meeting if needed
API Endpoint Reference
Teams & Channels
GET /teams- List all teamsGET /teams/{team-id}- Get specific teamGET /teams/{team-id}/channels- List team channelsGET /teams/{team-id}/channels/{channel-id}- Get channel detailsPOST /teams/{team-id}/channels- Create new channelPATCH /teams/{team-id}/channels/{channel-id}- Update channel
Channel Messages
GET /teams/{team-id}/channels/{channel-id}/messages- List messagesGET /teams/{team-id}/channels/{channel-id}/messages/{message-id}- Get messagePOST /teams/{team-id}/channels/{channel-id}/messages- Send messagePATCH /teams/{team-id}/channels/{channel-id}/messages/{message-id}- Edit messageDELETE /teams/{team-id}/channels/{channel-id}/messages/{message-id}- Delete message
Meetings
POST /me/onlineMeetings- Create online meetingGET /me/onlineMeetings- List my meetingsGET /me/onlineMeetings/{meeting-id}- Get meeting detailsPATCH /me/onlineMeetings/{meeting-id}- Update meetingDELETE /me/onlineMeetings/{meeting-id}- Cancel meetingGET /me/onlineMeetings/{meeting-id}/transcripts- Get transcripts
Chat
GET /chats- List all chatsGET /chats/{chat-id}- Get chat detailsPOST /chats- Create new chatGET /chats/{chat-id}/messages- List chat messagesPOST /chats/{chat-id}/messages- Send chat message
Best Practices
Message Formatting
- Use Markdown or HTML for rich text when supported
- Handle @mentions correctly (user or team references)
- Validate message length limits (typically 28KB)
- Test adaptive cards for compatibility
Rate Limiting
- Respect Microsoft Graph API rate limits
- Implement exponential backoff for throttling
- Batch operations where possible
- Monitor API usage and adjust accordingly
Error Handling
- Handle 404 errors (resource not found)
- Manage permission errors (403) gracefully
- Implement retry logic for transient failures
- Log errors with sufficient context for debugging
Meeting Management
- Check participant limits for meeting type
- Validate meeting options before creation
- Handle time zone conversions correctly
- Confirm meeting creation before sharing links
Content Safety
- Validate content for sensitive information
- Follow organizational communication policies
- Respect privacy when accessing chat history
- Obtain consent where required for automation
Integration Examples
Post a daily status update to channel
- Identify target channel ID via teams/channels endpoints
- Compose status message with relevant data
- Use
POST /teams/{team-id}/channels/{channel-id}/messages - Include attachments or adaptive cards if needed
- Confirm successful posting
Schedule a weekly team meeting
- Create meeting object with recurring schedule
- Add team members as attendees
- Call
POST /me/onlineMeetings - Extract meeting link and share with team
- Send confirmation via channel or chat
Send notification to multiple users via group chat
- Create group chat with participants
- Compose notification message
- Send via
POST /chats/{chat-id}/messages - Track delivery and responses
- Archive or update chat as needed
Retrieve meeting action items
- Get meeting transcript via
/transcriptsendpoint - Parse transcript for action items
- Create follow-up tasks or messages
- Share summary with participants
- Update project tracking systems if integrated