canonical: https://jentic.com/apis/microsoft.com/microsoft-teams-events-api

# Microsoft Azure Microsoft Teams Events API

Jentic publishes the only available OpenAPI specification for Microsoft Teams Events API, keeping it validated and agent-ready. The API is a curated slice of Microsoft Graph covering Microsoft Teams - team and channel management, channel messages, members, installed apps, tabs, calls, online meetings, schedule shifts, group calendar events, and activity feed notifications. It uses OAuth 2.0 with Microsoft Entra ID (formerly Azure AD) and is consumed via 35 endpoints under the v1.0 Graph host.

## For AI agents

Drive Microsoft Teams from an agent - manage teams and channels, send channel messages, schedule meetings and calls, list members and apps, and post activity feed notifications.

## Scope

Does not handle email, SharePoint sites, OneDrive files, or Outlook calendars outside the team group - use for Microsoft Teams team, channel, message, call, meeting, shift, and notification operations only.

## Capabilities

- Create, list, update, archive, and delete teams via /teams endpoints
- Manage channels under a team, list channel messages, and send new messages with POST /teams/{team-id}/channels/{channel-id}/messages
- Add or list team members, inspect installed apps, and add tabs to channels
- Place, answer, reject, redirect, and transfer calls through /communications/calls endpoints
- Create and retrieve online meetings via /communications/onlineMeetings
- Create and replace team schedules and create shifts via /teams/{team-id}/schedule and /schedule/shifts
- Create calendar events on the underlying group and send activity feed notifications

## Use cases

### Automated Project Team Provisioning

Operations and IT teams provision a new Microsoft Teams workspace for every new project by chaining POST /teams to create the team, POST /teams/{team-id}/channels for the standard channels, POST /teams/{team-id}/members to add the kickoff list, and POST /teams/{team-id}/installedApps to install required apps. The result is a fully configured project hub created in seconds rather than minutes of clicking.

Example prompt: Create a team called 'Project Atlas', then create channels 'general', 'engineering', and 'design' and add three members to the team.

### Channel Notifications from Internal Systems

Internal monitoring or workflow systems push status updates into Teams by calling POST /teams/{team-id}/channels/{channel-id}/messages with rich content. For higher-priority signals, POST /teams/{team-id}/sendActivityNotification raises an activity feed item that surfaces in the user's notifications, ensuring critical alerts are not lost in busy channels.

Example prompt: Send a channel message containing a deploy summary to channel 'deploys' in team 'Engineering' and follow up with an activity feed notification.

### Meeting and Call Orchestration

Customer-facing teams and contact centres orchestrate calls and online meetings via POST /communications/calls and POST /communications/onlineMeetings. The /communications/calls/{call-id}/answer, /reject, /redirect, and /transfer endpoints let an agent run scripted call handling that respects org policy, and meeting metadata can be retrieved for follow-up activity logging.

Example prompt: Create an online meeting starting in 30 minutes via POST /communications/onlineMeetings and return the join URL.

### Workforce Schedule Automation

Frontline workforce teams use the Teams schedule and shifts endpoints to automate roster management. PUT /teams/{team-id}/schedule provisions a schedule, POST /teams/{team-id}/schedule/shifts adds shifts, and GET /teams/{team-id}/schedule/shifts pulls the current roster - supporting integrations with HR and timekeeping systems.

Example prompt: Create a Teams schedule for team 'Store-42' and add three shifts for tomorrow via POST /teams/{team-id}/schedule/shifts.

### Agent-Driven Teams Operations

An AI agent that helps a manager run their week can post channel messages, schedule meetings, and send activity notifications by calling Microsoft Teams through Jentic. The agent searches by intent, loads the operation schema, and executes - with the OAuth 2.0 token managed inside your Jentic One instance rather than in the agent's prompt.

Example prompt: Search Jentic for 'send a message to a Teams channel', load POST /teams/{team-id}/channels/{channel-id}/messages, and post the agent-drafted update.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /teams | Create a new team |
| GET | /teams/{team-id}/channels | List channels in a team |
| POST | /teams/{team-id}/channels/{channel-id}/messages | Send a message to a channel |
| POST | /teams/{team-id}/members | Add a member to a team |
| POST | /communications/onlineMeetings | Create an online meeting |
| POST | /communications/calls | Create a call |
| POST | /teams/{team-id}/sendActivityNotification | Send an activity feed notification |
| POST | /teams/{team-id}/schedule/shifts | Create a shift |

## Key resources

- **Teams** — Create, list, update, archive, and delete teams
- **Channels** — Manage channels and send messages within a team
- **Members** — List and add team members
- **Apps** — List and install apps on a team
- **Tabs** — Add and list tabs in a channel
- **Calls** — Create, answer, reject, redirect, transfer, and end calls
- **Meetings** — Create and retrieve online meetings
- **Shifts** — Manage Teams schedule and shifts for frontline workforce scenarios
- **Events** — List and create calendar events on the underlying group
- **Notifications** — Send activity feed notifications to a team

## Why Jentic

- **Setup:** Wiring the Microsoft Teams Events API by hand means running the Microsoft Graph OAuth 2.0 authorization-code flow, managing consented scopes, and refreshing bearer tokens for the Graph host yourself. Through Jentic you install once, import the Microsoft Teams Events API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Graph puts the team and channel in the URL path (/teams/{team-id}/channels/{channel-id}/messages), so a rule can pin your agent to one team or channel. You choose the operations it may call, so creating teams or sending activity notifications is not included unless you add it.
- **Credential handling:** Your Microsoft Graph OAuth credentials and refreshed bearer tokens are stored once, encrypted, by your own Jentic One instance and applied to the Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a message to a Teams channel' or 'create an online meeting', and Jentic returns the matching Teams operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Slack** — Team chat platform with channels, messages, and apps
- **Discord** — Community-focused chat with channels and voice rooms
- **Zoom Meetings** — Standalone meetings platform
- **Google Chat** — Google Workspace chat and spaces API

## FAQ

### Why is there no official OpenAPI spec for Microsoft Teams Events API?

Microsoft does not publish an OpenAPI specification scoped to the Teams slice of Microsoft Graph. Jentic generates and maintains this spec so that AI agents and developers can call Microsoft Teams Events API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Microsoft Teams Events API use?

The API uses OAuth 2.0 with Microsoft Entra ID (formerly Azure AD). Apps acquire either delegated user tokens or application tokens with Teams-scoped permissions like Team.ReadBasic.All, Channel.Create, ChannelMessage.Send, and OnlineMeetings.ReadWrite. Through Jentic the OAuth flow and refreshed tokens are stored in the encrypted vault.

### Can I send a message to a private channel?

POST /teams/{team-id}/channels/{channel-id}/messages works for standard and private channels provided the calling identity has access. The same path covers both - the channel-id determines the target.

### What are the rate limits for the Microsoft Teams Events API?

Microsoft Graph applies per-app and per-tenant throttling that varies by resource - Teams messaging endpoints typically permit a few hundred writes per minute per tenant before throttling. Watch for 429 responses with a Retry-After header and back off accordingly.

### How do I create an online meeting through Jentic?

Search Jentic for 'create a Microsoft Teams online meeting', load POST /communications/onlineMeetings, and execute with start, end, and subject fields. Jentic adds the OAuth bearer token from your stored Microsoft credential.

### Does this API let me stream real-time channel messages?

These 35 endpoints cover REST operations only. For real-time message change notifications you would pair this API with Microsoft Graph change notifications and webhooks, which are configured through a separate set of Graph endpoints.

### Can I limit what my agent is allowed to do with the Microsoft Teams Events API?

Yes. Because you run Jentic One yourself, your own rules decide which Teams operations the agent may call and which stored Microsoft Graph credential it uses, so you can allow it to send channel messages via POST /teams/{team-id}/channels/{channel-id}/messages while withholding create-team or send-activity-notification calls. Since Graph puts the team and channel in the URL path, a rule can also pin the agent to a single team or channel. Operations you do not grant are simply unavailable to the agent.
