Files
AGENTS/skills/msteams/SKILL.md
m3tm3re db1a5ba9ce Add MS Teams Graph API integration skill
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
2026-02-03 18:52:14 +01:00

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:

  1. Identify target team and channel via Graph API
  2. Prepare message content with rich text formatting
  3. Post message to channel using message endpoint
  4. Include attachments if needed
  5. Log or track message delivery

Meeting Scheduling Automation

Schedule recurring or one-off meetings:

  1. Create meeting object with required details
  2. Add attendees and configure options
  3. Use Graph API to create meeting in calendar
  4. Generate and share meeting link
  5. Send confirmation to participants

Chat-Based Notifications

Send notifications to users or groups via chat:

  1. Identify target chat (1:1 or group)
  2. Compose notification message
  3. Send via chat message endpoint
  4. Handle delivery confirmations
  5. Track response if needed

Content Retrieval & Reporting

Gather information from Teams conversations:

  1. Query channel or chat message history
  2. Filter by date, sender, or keywords
  3. Extract relevant content and attachments
  4. Compile report or summary
  5. Format for user consumption

Meeting Follow-up Workflows

Automate post-meeting actions:

  1. Retrieve meeting transcripts or recordings
  2. Extract action items or decisions
  3. Create follow-up tasks or messages
  4. Share summary with participants
  5. Schedule next meeting if needed

API Endpoint Reference

Teams & Channels

  • GET /teams - List all teams
  • GET /teams/{team-id} - Get specific team
  • GET /teams/{team-id}/channels - List team channels
  • GET /teams/{team-id}/channels/{channel-id} - Get channel details
  • POST /teams/{team-id}/channels - Create new channel
  • PATCH /teams/{team-id}/channels/{channel-id} - Update channel

Channel Messages

  • GET /teams/{team-id}/channels/{channel-id}/messages - List messages
  • GET /teams/{team-id}/channels/{channel-id}/messages/{message-id} - Get message
  • POST /teams/{team-id}/channels/{channel-id}/messages - Send message
  • PATCH /teams/{team-id}/channels/{channel-id}/messages/{message-id} - Edit message
  • DELETE /teams/{team-id}/channels/{channel-id}/messages/{message-id} - Delete message

Meetings

  • POST /me/onlineMeetings - Create online meeting
  • GET /me/onlineMeetings - List my meetings
  • GET /me/onlineMeetings/{meeting-id} - Get meeting details
  • PATCH /me/onlineMeetings/{meeting-id} - Update meeting
  • DELETE /me/onlineMeetings/{meeting-id} - Cancel meeting
  • GET /me/onlineMeetings/{meeting-id}/transcripts - Get transcripts

Chat

  • GET /chats - List all chats
  • GET /chats/{chat-id} - Get chat details
  • POST /chats - Create new chat
  • GET /chats/{chat-id}/messages - List chat messages
  • POST /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

  1. Identify target channel ID via teams/channels endpoints
  2. Compose status message with relevant data
  3. Use POST /teams/{team-id}/channels/{channel-id}/messages
  4. Include attachments or adaptive cards if needed
  5. Confirm successful posting

Schedule a weekly team meeting

  1. Create meeting object with recurring schedule
  2. Add team members as attendees
  3. Call POST /me/onlineMeetings
  4. Extract meeting link and share with team
  5. Send confirmation via channel or chat

Send notification to multiple users via group chat

  1. Create group chat with participants
  2. Compose notification message
  3. Send via POST /chats/{chat-id}/messages
  4. Track delivery and responses
  5. Archive or update chat as needed

Retrieve meeting action items

  1. Get meeting transcript via /transcripts endpoint
  2. Parse transcript for action items
  3. Create follow-up tasks or messages
  4. Share summary with participants
  5. Update project tracking systems if integrated