microsoft-graph
SKILL.md
Microsoft Graph
Interact with Microsoft 365 services via the Graph API.
Environment Variables
MS_GRAPH_TOKEN- OAuth2 bearer token (delegated or application)
My profile
curl -s -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
"https://graph.microsoft.com/v1.0/me" | jq '{displayName, mail, jobTitle}'
List emails (Outlook)
curl -s -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
"https://graph.microsoft.com/v1.0/me/messages?\$top=10&\$select=subject,from,receivedDateTime,isRead" | jq '.value[] | {subject, from: .from.emailAddress.address, received: .receivedDateTime, isRead}'
Send email (Outlook)
curl -s -X POST -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
-H "Content-Type: application/json" \
"https://graph.microsoft.com/v1.0/me/sendMail" \
-d '{
"message": {
"subject": "Hello from ThinkFleetBot",
"body": {"contentType": "Text", "content": "Message body here"},
"toRecipients": [{"emailAddress": {"address": "recipient@example.com"}}]
}
}'
echo "Email sent"
List calendar events
curl -s -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
"https://graph.microsoft.com/v1.0/me/events?\$top=10&\$select=subject,start,end,location&\$orderby=start/dateTime" | jq '.value[] | {subject, start: .start.dateTime, end: .end.dateTime, location: .location.displayName}'
Create calendar event
curl -s -X POST -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
-H "Content-Type: application/json" \
"https://graph.microsoft.com/v1.0/me/events" \
-d '{
"subject": "Team Standup",
"start": {"dateTime": "2025-01-15T09:00:00", "timeZone": "UTC"},
"end": {"dateTime": "2025-01-15T09:30:00", "timeZone": "UTC"},
"attendees": [{"emailAddress": {"address": "colleague@example.com"}, "type": "required"}]
}' | jq '{id, subject, webLink}'
Send Teams message
curl -s -X POST -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
-H "Content-Type: application/json" \
"https://graph.microsoft.com/v1.0/teams/TEAM_ID/channels/CHANNEL_ID/messages" \
-d '{"body": {"content": "Hello from ThinkFleetBot!"}}' | jq '{id, createdDateTime}'
List Teams channels
curl -s -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
"https://graph.microsoft.com/v1.0/me/joinedTeams" | jq '.value[] | {id, displayName}'
List OneDrive files
curl -s -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
"https://graph.microsoft.com/v1.0/me/drive/root/children" | jq '.value[] | {name, size, lastModifiedDateTime, webUrl}'
Upload file to OneDrive
curl -s -X PUT -H "Authorization: Bearer $MS_GRAPH_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @/tmp/report.pdf \
"https://graph.microsoft.com/v1.0/me/drive/root:/Documents/report.pdf:/content" | jq '{name, webUrl}'
Notes
- Tokens expire; use refresh tokens or app-only auth for long-running operations.
- Delegated tokens act on behalf of a user; application tokens act as the app.
- Use
$select,$filter,$top,$orderbyOData query params for efficient queries. - Always confirm before sending emails, creating events, or posting messages.
Weekly Installs
1
Repository
thinkfleetai/th…t-engineFirst Seen
Mar 1, 2026
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1