home / skills / openclaw / skills / microsoft-teams
This skill helps automate Microsoft Teams tasks by posting messages, listing channels, and scheduling meetings via Graph API and webhooks.
npx playbooks add skill openclaw/skills --skill microsoft-teamsReview the files below or copy the command above to add this skill to your agents.
---
name: microsoft-teams
description: Send messages, manage channels, and automate workflows via Microsoft Teams API. Post to channels, create meetings, and manage team memberships.
metadata: {"clawdbot":{"emoji":"š„","requires":{"env":["TEAMS_WEBHOOK_URL"]}}}
---
# Microsoft Teams
Team collaboration and messaging.
## Webhook (Simplest - No Auth)
```bash
# Post to channel via incoming webhook
curl -X POST "$TEAMS_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"text": "Hello from automation!"}'
```
## Adaptive Card via Webhook
```bash
curl -X POST "$TEAMS_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"body": [{"type": "TextBlock", "text": "Alert!", "weight": "bolder"}],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2"
}
}]
}'
```
## Graph API (Full Access)
Requires Azure AD app registration with Microsoft Graph permissions.
```bash
export TEAMS_ACCESS_TOKEN="xxxxxxxxxx"
# List joined teams
curl "https://graph.microsoft.com/v1.0/me/joinedTeams" \
-H "Authorization: Bearer $TEAMS_ACCESS_TOKEN"
# List channels
curl "https://graph.microsoft.com/v1.0/teams/{team-id}/channels" \
-H "Authorization: Bearer $TEAMS_ACCESS_TOKEN"
# Send message to channel
curl -X POST "https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/messages" \
-H "Authorization: Bearer $TEAMS_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"body": {"content": "Hello Teams!"}}'
# Create online meeting
curl -X POST "https://graph.microsoft.com/v1.0/me/onlineMeetings" \
-H "Authorization: Bearer $TEAMS_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startDateTime": "2024-01-30T10:00:00Z", "endDateTime": "2024-01-30T11:00:00Z", "subject": "Quick Sync"}'
```
## Links
- Admin: https://admin.teams.microsoft.com
- Docs: https://docs.microsoft.com/en-us/graph/api/resources/teams-api-overview
This skill integrates with Microsoft Teams to send messages, manage channels and members, and automate meeting workflows using either simple incoming webhooks or the Microsoft Graph API. It supports posting plain text, Adaptive Cards, creating online meetings, and listing or modifying team resources. The skill is designed for automation, alerts, and routine team management tasks.
Use incoming webhooks for the simplest no-auth posts to a channel or to deliver Adaptive Cards as rich notifications. For full controlālisting teams, creating channels, managing membership, and scheduling meetingsāauthenticate an Azure AD app and call Microsoft Graph endpoints with a valid access token. The skill posts JSON payloads for messages and Adaptive Cards, and uses standard Graph REST calls for resource management and meeting creation.
When should I use a webhook versus Microsoft Graph?
Use incoming webhooks for simple, unauthenticated channel posts and lightweight notifications. Use Microsoft Graph when you need full access to Teams resources, user context, member management, or meeting creation.
What authentication is required for Graph API calls?
Register an Azure AD app and obtain OAuth tokens with the necessary Graph permissions (delegated or application). Protect and rotate these credentials and request only the scopes your automation needs.