Skip to Content
ResourcesIntegrationsSocial & CommunicationMicrosoft Teams

Microsoft Teams

Microsoft Teams icon
Arcade Optimized

Arcade.dev LLM tools for Microsoft Teams

Author:Arcade
Version:1.1.1
Auth:User authorization via the Microsoft auth provider
38tools

Microsoft Teams Toolkit

Arcade's Microsoft Teams toolkit lets LLM agents interact with Teams chats, channels, meetings, and users via the Microsoft Graph API, acting on behalf of the signed-in user.

Capabilities

  • Messaging — Send, edit, soft-delete, and react to messages in 1:1 chats, group chats, meeting chats, and channels; reply to channel messages with full thread support; quote-reply in non-channel chats where native threading is unsupported.
  • Chat & channel management — Create chats (with automatic deduplication for 1:1), update group chat rosters, list and search chats, retrieve or search channels within a team.
  • Teams & member discovery — List teams the user belongs to, search across the org by name prefix, list or search team members (up to 999 per Graph API limit), resolve users by name or ID within the tenant or from interaction history.
  • Meeting lifecycle — Schedule Teams meetings with calendar invites and join links, list meetings by date range, cancel meetings (organizer only), retrieve meeting details.
  • Transcripts — List generated transcripts for a meeting, fetch transcript content with speaker attribution (falls back to unattributed text automatically).
  • Search — Full-text search across messages (eventual consistency; recent messages may lag), people search across 365 interaction history (falls back to tenant user search when relevance graph omits a known contact), and user/team/channel search.

OAuth

This toolkit uses OAuth 2.0 via the Microsoft provider. See the Arcade Microsoft auth provider docs for setup details.

Available tools(38)

38 of 38 tools
Operations
Behavior
Tool nameDescriptionSecrets
Cancel 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.
Create 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. by its members or in the user's chat list) 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.
Schedule 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.
Delete 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.
Delete 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.
Retrieve the replies to a Microsoft Teams channel message.
Retrieve 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.
Retrieve 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. It is not necessary to list the user's teams 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.
Retrieve 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.
Retrieve messages from a Microsoft Teams chat (individual, group, or meeting). 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 SEARCH FOR THE USERS OR PEOPLE 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 look up the signed-in user's profile before calling this tool. Messages will be sorted in descending order by the messages' `created_datetime` field. Date filters use creation time in UTC; editing a message does not change its selected period. Messages without creation timestamps are excluded when a date bound is provided. Only ordinary messages are returned; system events and unknown or missing message types are excluded. The tool scans subsequent pages until the message limit is reached or history ends. If the scan exceeds the pagination timeout, it raises an error rather than returning incomplete results. Echo pagination.next_page_token to continue with older messages; For continuation calls, use the previous response's chat.id as chat_id and omit user_ids and user_names; participant lookup can select another chat as activity changes. pagination.is_last_page is true only when the selected history is exhausted. Graph does not provide a snapshot: messages added or removed during pagination can shift results.
Retrieve 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. 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.
Retrieve a Microsoft Teams meeting scheduled on the signed-in user's calendar. The meeting_id comes from a meeting listing, or from the id returned after scheduling a new meeting.
Fetch 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. This tool is not necessary to call before calling other tools.
Retrieve 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. Retrieving a team by ID requires access under the signed-in account. A team discovered through organization-wide search may not be accessible to that account.
List 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.
List the Microsoft Teams chats to which the current user is a member of.
List 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.
List 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.
List 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.
List the teams the current user is associated with in Microsoft Teams.
List the users in the Microsoft Teams tenant.
Add or remove an emoji reaction on a Microsoft Teams channel message.
Add or remove 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.
Send a reply to a Microsoft Teams channel message. When available, prefer providing a channel_id for optimal performance. It is not necessary to list the user's teams 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)
Last updated on