Microsoft Teams
Arcade Optimized
Arcade.dev LLM tools for Microsoft Teams
38tools
The Microsoft Teams toolkit lets Arcade-powered LLM agents interact with Microsoft Teams on behalf of signed-in users via the Microsoft Graph API. It covers messaging, meetings, channels, chats, user/team discovery, and meeting transcripts.
Capabilities
- Messaging (chats & channels): Send, reply, edit, soft-delete, and react to messages in 1:1 chats, group chats, and team channels; quote-reply in non-channel chats where native threading is unsupported.
- Chat & channel management: Create chats (1:1 or group), manage group chat rosters (add/remove members), list and search chats, retrieve channel metadata and member lists, and search across teams and channels.
- Meetings: Schedule and cancel Teams online meetings, retrieve meeting details, list meetings within a date range, and access meeting transcripts (with automatic fallback from speaker-attributed to unattributed format).
- User & people discovery: Search tenant users, people from the signed-in user's interaction history (including external tenants), team members, and resolve identities by name or ID across tools.
- Cross-context search: Full-text search across messages in both chats and channels (subject to Graph API eventual consistency).
- Identity & context: Retrieve the signed-in user's profile or confirm caller identity and tenant context before acting.
OAuth
This toolkit authenticates via OAuth 2.0 with Microsoft as the identity provider. See the Arcade Microsoft auth provider docs for configuration details, required permissions, and setup steps.
Secrets
No secrets are required for this toolkit.
Available tools(38)
38 of 38 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
Cancels a Microsoft Teams meeting the signed-in user organizes, notifying attendees.
Only the meeting's organizer can cancel it; cancelling a meeting organized by someone else
fails. | |||
Creates a Microsoft Teams chat.
For a 1:1 chat (exactly one other member besides the caller), the MS Graph API deduplicates
reliably: if a one-on-one chat already exists with that member, this returns the existing
chat instead of creating a new one.
For a group chat (two or more other members), the MS Graph API does NOT guarantee dedup: a
new group chat may be created even when a group chat with the exact same member set already
exists. To reuse an existing group chat, look it up first (e.g. via `Teams.GetChatMetadata`
or `Teams.ListChats`) rather than relying on this tool to return it.
Provide any combination of user_ids and/or user_names. When available, prefer providing
user_ids for optimal performance. | |||
Schedules a new Microsoft Teams online meeting on the signed-in user's calendar.
Creates a calendar event with an attached Teams meeting (join link, dial-in info) and sends
invites to any attendees provided. The response's join_url is what attendees use to join. | |||
Deletes a previously sent Microsoft Teams channel message.
This soft-deletes the message: it is marked as deleted and its content is replaced with a
placeholder for other members, not permanently erased. Only the original sender's own
message can be deleted. | |||
Deletes a previously sent Microsoft Teams chat message.
This soft-deletes the message: it is marked as deleted and its content is replaced with a
placeholder for other members, not permanently erased. Only the original sender's own
message can be deleted.
Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a
chat_id or user_ids for optimal performance. | |||
Retrieves the replies to a Microsoft Teams channel message. | |||
Retrieves the messages in a Microsoft Teams channel, newest first.
The channel-messages endpoint rejects server-side date filtering outright, so start_datetime
and end_datetime are applied client-side over the most recent messages this tool walks from
upstream: it may miss older matches beyond that window, and the response's scanned_count
field reports how many messages were inspected before filtering. | |||
Retrieves metadata about a Microsoft Teams channel and its members.
Provide exactly one of channel_id, channel_name, or channel_id_or_name. When available,
prefer providing a channel_id for optimal performance.
The Microsoft Graph API returns only up to the first 999 members in the channel.
This tool does not return messages exchanged in the channel. To retrieve channel messages,
use the `Teams.GetChannelMessages` tool.
It is not necessary to call `Teams.ListTeams` before calling this tool. If the user does not
provide a team_id_or_name, the tool will try to find a unique team to use. | |||
Retrieves a Microsoft Teams chat message.
Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a
chat_id or user_ids for optimal performance.
When user_names is provided instead of chat_id, this tool also searches the caller's People
(contacts and interaction history) to resolve the chat. | |||
Retrieves messages from a Microsoft Teams chat (individual or group).
Provide one of chat_id OR any combination of user_ids and/or user_names. When available, prefer
providing a chat_id or user_ids for optimal performance.
If the user provides user name(s), DO NOT CALL THE `Teams.SearchUsers` or `Teams.SearchPeople`
tools first. Instead, provide the user name(s) directly to this tool through the `user_names`
argument. It is not necessary to provide the currently signed in user's name/id, so do not call
`Teams.GetSignedInUser` before calling this tool.
Messages will be sorted in descending order by the messages' `created_datetime` field.
The Microsoft Teams API does not support pagination for this tool. | |||
Retrieves metadata about a Microsoft Teams chat.
Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a
chat_id or user_ids for optimal performance.
If multiple roup chats exist with those exact members, returns the most recently updated one.
Max 20 DIFFERENT users can be provided in user_ids/user_names.
This tool DOES NOT return messages in a chat. Use the `Teams.GetChatMessages` tool to get
chat messages.
When user_names is provided instead of chat_id, this tool also searches the caller's People
(contacts and interaction history) to resolve the chat. | |||
Retrieves a Microsoft Teams meeting scheduled on the signed-in user's calendar.
Use `Teams.ListMeetings` to discover meeting_id values, or the id returned by
`Teams.CreateMeeting` after scheduling a new one. | |||
Fetches the text content of a Teams meeting transcript.
Prefers speaker-attributed content; when the signed-in user's role does not permit speaker
attribution, automatically falls back to unattributed text instead of failing outright. The
format field on the response states which one was returned. | |||
Get the current user's full profile (name, job title, employment, contacts, location).
Use this to fetch profile details about the signed-in user, not to confirm caller identity
or tenant context before acting - use `Teams.WhoAmI` for that instead. This tool is not
necessary to call before calling other tools. | |||
Retrieves metadata about a team in Microsoft Teams.
Provide one of team_id OR team_name, never both. When available, prefer providing a team_id for
optimal performance.
If team_id nor team_name are provided: 1) if the user has a single team, the tool will retrieve
it; 2) if the user has multiple teams, an error will be returned with a list of all teams to
pick from. | |||
Lists the channels owned by a Microsoft Teams team (standard, private, and shared
channels it hosts). Does not include channels shared into this team by another team.
This tool does not return messages nor members in the channels. To retrieve channel messages,
use the `Teams.GetChannelMessages` tool. To retrieve channel members, use the
`Teams.ListChannelMembers` tool. | |||
List the Microsoft Teams chats to which the current user is a member of. | |||
Lists Microsoft Teams online meetings on the signed-in user's calendar within a date
range, oldest first.
Only returns calendar events that are Teams online meetings; regular (non-meeting) calendar
events in the same date range are excluded. | |||
Lists the transcripts Microsoft Graph has generated for a Teams meeting, most recent
first.
Works for meetings the signed-in user attended without organizing them, not just ones they
organize. Returns an empty list for a meeting that has not yet occurred or has no generated
transcript, rather than an error. Requires the tenant to have transcript access enabled for
Teams; when it is not, the call fails naming the tenant-level setting an admin must enable. | |||
Lists the members of a team in Microsoft Teams.
Provide one of team_id OR team_name, never both. When available, prefer providing a team_id for
optimal performance.
If team_id nor team_name are provided: 1) if the user has a single team, the tool will use it;
2) if the user has multiple teams, an error will be returned with a list of all teams to pick
from.
The Microsoft Graph API returns only up to the first 999 members. | |||
Lists the teams the current user is associated with in Microsoft Teams. | |||
Lists the users in the Microsoft Teams tenant. | |||
Adds or removes an emoji reaction on a Microsoft Teams channel message. | |||
Adds or removes an emoji reaction on a Microsoft Teams chat message.
Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a
chat_id or user_ids for optimal performance. | |||
Sends a reply to a Microsoft Teams channel message.
When available, prefer providing a channel_id for optimal performance.
It is not necessary to call `Teams.ListTeams` before calling this tool. If the user does not
provide a team_id_or_name, the tool will try to find a unique team to use. |
Page 1 of 2(25 of 38)
Get Building
Last updated on