Microsoft Teams Development Samples
Microsoft Teams is highly extensible, allowing 3rd party and custom applications to run alongside the many Office 365 services already included in Teams. Use this site to browse through the available Teams app samples from Microsoft and the Patterns and Practices community.
Click on the left to choose how you'd like to filter the samples, and then click a filter to the right of the search box. You can use the search box to further refine the list of samples shown. Here are some helpful search terms:
- Sample types (apptemplate, barebones, demo, solution)
- Capabilities (bot, connector, meetings, msgext, tab, taskmodule, webhook)
- Source (appTemplate, botBuilder, msftTeams, officeDev, pnp)
- Language (csharp, java, javascript, powerapps, powerautomate, python, typescript)
- Keyword or technology (such as "auth", "react", or "spfx")
We welcome your contributions! To learn more about how to use these samples, please refer to our getting started section.
Samples

Bot, Tabs, and Messaging Extension
A very early Teams sample - shows tab, bot, and messaging extension (WARNING uses deprecated version of Bot Builder SDK)

Bot, Tabs, and Messaging Extension
A very early Teams sample - shows tab, bot, and messaging extension (WARNING uses deprecated version of Bot Builder SDK)

Github connector for Microsoft Teams
Sends notifications based on Github activity (this is not the source code for the Github connector in Teams/Outlook/Yammer)

Bot, Tabs, and Messaging Extension
A very early Teams sample - shows tab, bot, and messaging extension (WARNING uses deprecated version of Bot Builder SDK)

Bot, Tabs, and Messaging Extension
A very early Teams sample - shows tab, bot, and messaging extension (WARNING uses deprecated version of Bot Builder SDK)

Outgoing webhook in C#
This project is an implementation of a very simple Outgoing Webhook for Microsoft Teams. All it does is verify that what's sending messages matches the Outgoing Webhook that was created in Teams, and it echoes back whatever is sent to it.

Outgoing webhook in NodeJS
This project is an implementation of a very simple Outgoing Webhook for Microsoft Teams. All it does is verify that what's sending messages matches the Outgoing Webhook that was created in Teams, and it echoes back whatever is sent to it.

To Do notification
NOTE: This has no relationship with the Microsoft To Do product. A simple in-memory database holds the to do items.

Bot and Tabs Auth Sample
Shows tab and bot authentication

Resource Specific Consent with Graph API C#
Shows how to request RSC permissions, use them to call Microsoft Graph, and hos to enumerate permission grants within a Team

Resource Specific Consent with Graph API Javascript
Shows how to request RSC permissions and use them to call Microsoft Graph

Launch task module from tab and bot
Launch a task module from a tab or bot (WARNING uses deprecated version of Bot Builder SDK)

Launch task module from tab and bot
Launch a task module from a tab or bot (WARNING uses deprecated version of Bot Builder SDK)

Suggested members tab
SPFx tab that suggests new members for a Team based on insights from Microsoft Graph, and adds them with a click

Teams Creator web part
This is a SharePoint web part that creates Teams

Tab or web part to show Teams to join
Tab or web part shows Teams the user is not a member of, with an opportunity to join

Web part to show my Teams
Web part shows Teams the user belongs to with links to each Team

Web part to tag a Team
Web part to tag a Team using managed metadata and Graph extension

Field visit mashup
A web part for use in Microsoft Teams that displays a mashup of information partaining to customer visits.

StateBot
This simple bot demonstrates conversation state and user state in Bot Framework v4

HR Talent App demo/lab
This is the lab for the 2019 Microsoft Teams Development Bootcamp. It shows all the extension points that were avaialble at the time. Includes two implementations, Bot Framework 3.x and Bot Framework 4.4 (Teams messages handled in code since they didn't get into the Bot Framework till 4.6)

Celebrate App Template
Celebrations is a Teams app that helps team members celebrate each others’ birthdays, anniversaries, and other recurring events.

Configurable tabs with SharePoint
This is a SharePoint web part that creates Teams

Bot calls Graph as a user
Simple Bot calls Graph and displays recent emails from the user's inbox

Outlook add-in saves email to Teams
Outlook add-in written in SPFx saves email to Teams, OneDrive, or M365 Groups (SharePoint)

Open Badges App Template
Open Badges is a Microsoft Teams app that enables individuals to earn digital learning credential badges within the Teams context and share them everywhere

Quick Responses App Template
Quick Responses is a Microsoft Teams app that answering users' frequently asked questions (FAQs) using a messaging extension.

Remote Support App Template
Remote Support is a Microsoft Teams bot that provides a focused interface between support requesters throughout your organization and the internal support team. End-users can submit, edit, or withdraw requests for support and the support team can respond, manage, and update requests all within the Teams platform.

Incident Reporter App Template
The Incident Reporter is a bot that facilitates automated incident data collection, customized incident reports, relevant stakeholder notifications, and end-to-end incident tracking.

Consulting Bot
This app demonstrates two styles of Bot conversation - using natural language (best for 1:1 conversation) and using adaptive cards (best for Team channels and group chat)

SPFx personal tab with property pane editing
Shows how to expose the web part editing of an SPFx personal tab

Associate Insights App Template
Associate insights is a Power Apps template that empowers firstline workers to directly capture and submit customer opinion, sentiment, and perception.

Company Communicator App Template
The Company Communicator app enables corporate teams to create and send messages intended for multiple teams or large number of employees over chat allowing organization to reach employees right where they collaborate.

Group Activities App Template
Group Activities allows team owners to create activities, randomly distribute team members in groups, and optionally have the bot send reminders until activities are complete

Grow Your Skills App Template
The Grow Your Skills app supports professional growth and development by enabling employees to contribute to supplemental projects for your organization while simultaneously learning new skills

HR Support App Template
HR Support bot is a friendly Q&A bot that brings a support professional/expert from the HR team in the loop when it is unable to help

Icebreaker App Template
Icebreaker is a Microsoft Teams bot that helps your team get closer by pairing two random team members up every week to meet

Incentives App Template
Incentives is a Power Apps template that manages and tracks incentivized employee participation in designated activities such as trainings and change management initiatives

SharePoint List Search App Template
The SharePoint List Search application allows users to find and insert information from SharePoint list items directly within a chat conversation

Attendance App Template
Attendance app is a Power Apps based solution to take attendance in educational tenant.

SharePoint web part sends to Teams
This is a SharePoint web part that displays the user's Teams and sends messages to channels

Custom Stickers App Template
This app template is a messaging extension that enables your users to use custom stickers and GIFs within Microsoft Teams.

Expert Finder App Template
Expert Finder is a Microsoft Teams bot that identifies specific organization members based on their skills, interests, and education attributes

Scrums for Group Chat App Template
Scrums for Group Chat is a supportive scrum assistant that enables group chat members to run asynchronous stand-up meetings and easily share their daily updates. It allows all members of the group chat to contribute to the scrum and view the updates made by others in the running scrum.

Share Now App Template
The Share Now app allows users to easily share content within the Teams environment. Users engage the app to share items of interest with team members, discover new shared content, set preferences, and bookmark favorites for later reading

Staff Check-ins App Template
Staff Check-ins enables oversight communication between your business and field personnel.

FAQ Plus App Template
FAQ Plus is a friendly Q&A bot that brings a human in the loop when it is unable to help.

Goal Tracker App Template
Goal Tracker app is a comprehensive solution for your organization to support establishing goals, observing progress, and acknowledging success within Microsoft Teams.

Visitor Management App Template
The Visitor Management app enables your organization and employees to easily and efficiently manage the on-site visitor process, directly from Microsoft Teams. The app enables employees to create visitor requests, centrally track a request status through the visitor dashboard, and receive real-time notifications when a visitor arrives.

Workplace Awards App Template
The app enables you to setup and manage an employee rewards and recognition (R&R) program where employees can easily nominate and endorse colleagues and your R&R leader can view submitted nominations, grant awards, and announce recipients

Great Ideas App Template
The Great Ideas app enables employees to share ideas with colleagues and leadership, discover new submissions, spotlight contributions for peer consideration, and vote for the best proposals.

Request-a-team App Template
Request-a-team is a Microsoft Teams app that optimizes new team creation for your enterprise organization. The app supports standardization and best practices when creating new team instances through the integration of a wizard-guided request form, an embedded approval process, a request status dashboard, and automated team builds

Scrums for Channels App Template
Scrums for Channels is a scrum assistant app that enables users to schedule and run scrums in channels within Microsoft Teams. The app is great for remote teams and teams comprised of members from varied geographical locations and time zones.

Book-a-room App Template
Book-a-room is a Microsoft Teams bot that lets users quickly find and reserve a meeting room for 30 (default), 60, or 90 minutes starting from the current time. The Book-a-room bot scopes to personal or 1:1 conversations.

Contact Group App Template
The Contact Group Lookup app provides a convenient and useful approach to creating, accessing, and managing your organization's contact groups (formerly known as distribution lists or communication groups).

Crowd Sourcer App Template
CrowdSourcer is a bot that helps a group maintain a list of frequently asked questions.

Get Started (Learning Pathways)
Integrate Microsoft 365 Learning Pathways custom training solution into Microsoft Teams with this app template. This app will require the installation of M365 Learning Pathways free training solution and to edit the default files with your particular site URL's prior to installation.

SharePoint Content Explorer for Teams
Content Explorer app allows users to surface all the libraries, lists, sub-sites and hub associated sites by pointing to any SharePoint site collection URL within a Tab in any of your Microsoft Teams.

Customer search messaging extension
A search messaging extension that looks up customers in the Northwind database and inserts an adaptive card for the customer into the conversation

Task creation messaging extension
Teams messaging extension uses Microsoft Graph to create tasks in ToDo or Planner

Microsoft Teams Sample Hub
The Teams Branded Experience (aka Sample Hub), together with custom line-of-business applications, enable you to quickly present the "art of the possible" by showcasing the Teams platform and articulating the value that it can deliver.

Tab uses MSAL 2.0 and calls Graph API
Tab uses MSAL 2.0 in a pop-up and calls Graph API. Shows authorization using auth code PKCE from a static web site.

Tab uses SharePoint Framework to call Graph API
Tab uses SPFx and Graph to display recent email

SPFx tab uses OAuth 2.0 to call 3rd party service (Box)
Tab uses OAuth 2.0 in a pop-up, calls the Box API and displays Box Content Explorer

Document Review - Search messaging extension calls Graph
Search-based messaging extension queries Graph API to find documents needing review

Document Review - Action messaging extension calls Graph
Sample of an action based messaging extension that authenticates via SSO and On Behalf Of flow to call Microsoft Graph and receive documents to review.

Action messaging extension with Just In Time installer
Sample of an Action messaging extension that shows a Just-In-Time installer to install the app into Teams/Personal/Group Chat, and how to post an adaptive card response directly into a conversation

SharePoint Framework task module with Bot and Messaging Extension
Demonstrates how to use SharePoint Framework powered Task modules in Microsoft Teams applications

HTTP Status Lookup messaging extension with cats
This is a small sample code to build a messaging extension with Node.js and Bot Framework

Document Review - Action messaging extension with SPFx Task Module
Sample of an action based messaging extension that authenticates via SSO and On Behalf Of flow to call Microsoft Graph and receive documents to review. Task module uses SPFx.

Teams Emergency Response solution with SharePoint
Workshop with sample code shows how to build a working emergency response solution with Teams and SharePoint

One Productivity Hub workshop
Workshop with sample code shows how to build a solution step by step that displays personal calendar, tasks, email

Giphy Search Messaging Extension
Search based Messaging extension allows users to find and insert gify's into a Microsoft Teams message

Me experience demonstrates use of Microsoft Graph Toolkit React Extensions in an SPFx web part in Teams
A Teams app where users can start their day and see their personal information using Microsoft Graph Toolkit React components
Upload as PDF tab
Tab allows uploading documents; they are converted to PDF and saved to the current channel

Tab SSO with .NET Core MVC
Tab SSO with .NET Core MVC

Send notifications in Teams
Tab sends notifications to Teams users

Tab SSO with .NET Core and Node back-ends
Two samples in one, with .NET Core and Node implementations; now makes Graph calls from the back end rather than pass the Graph access token to the browser.

Teams UI templates
This sample app can help you better understand how apps should look and behave in Microsoft Teams. The app includes examples of tested, high-quality UI templates that work across common Teams use cases (such as dashboards or forms).

Angular SPA grows into a full Teams app with bot
From the Learn Together event of December 15, 2020

One Productivity Hub
Tab displays user's calendar, tasks, and emails using Microsoft Graph Toolkit 2.0

Virtual events meeting extensibility
Shows how to create an app with a bot that calls users into a meeting with a custom event

Bot Single Sign-on
This sample shows how to implement Azure AD Single Sign-on for a Bot in Microsoft Teams

Teams bot proactive messaging across users and channels
Teams Bot records "coordinates" (conversation, channel info) and sends proactive messages

Teams bot with Polly retry policies
Teams bot uses "Polly" policies for throttling and exception handling, see http://www.thepollyproject.org/

Generic Connector
Generic connector that's easy to customize for any system which supports webhooks

Custom display of Reddit links
Messaging extension that detects Reddit links and shows a custom "unfurling" experience

Channel/group tabs in ASP.NET Core with MVC
In this quickstart we'll walk-through creating a custom channel/group tab with ASP.Net Core and MVC. We'll also use App Studio for Microsoft Teams to finalize your app manifest and deploy your tab to Teams.

Channel/group tabs in ASP.NET Core with Razor
In this quickstart we'll walk-through creating a custom channel/group tab with ASP.Net Core and Razor. We'll also use App Studio for Microsoft Teams to finalize your app manifest and deploy your tab to Teams.

Personal tabs in ASP.NET Core with MVC
In this quickstart we'll walk-through creating a custom channel/group tab with ASP.Net Core and MVC. We'll also use App Studio for Microsoft Teams to finalize your app manifest and deploy your tab to Teams.

Personal tabs in ASP.NET Core with Razor
In this quickstart we'll walk-through creating a custom channel/group tab with ASP.Net Core and Razor. We'll also use App Studio for Microsoft Teams to finalize your app manifest and deploy your tab to Teams.

Teams Tab SSO Authentication (C#)
This sample illustrates how to implement SSO authentication for Teams Tab

Teams Tab SSO Authentication (NodeJS)
This sample illustrates how to implement SSO authentication for Teams Tab

Channel/group tab in SharePoint Framework
Starting with the SharePoint Framework v1.8, you can implement your Microsoft Teams tabs using SharePoint Framework. Using SharePoint Framework significantly simplifies Teams tab development process as Teams tabs can be automatically hosted within SharePoint without any need for external services

Meeting Token Generator
Helps orchestrate who speaks when by issuing tokens to meeting attendees and display the token who should be speaking now

Teams Proactive Bot Messaging
Simple example of a bot that sends messages proactively when a web API is called; includes a tab for testing the bot

Teams Proactive Bot Messaging
Simple example of a bot that sends messages proactively when a web API is called; includes a tab for testing the bot

Starter solution: Sample bot - Teams Toolkit
Simple bot quickstart for Teams Toolkit

Action messaging extension
Simple action messaging extension

Search messaging extension
Simple search messaging extension

Starter solution: Channel/Group tab in JavaScript
Create React App channel/group tab in JavaScript

Starter solution: Channel/Group tab in TypeScript
Create React App channel/group tab in TypeScript

Starter solution: Personal tab in JavaScript
Create React App personal tab in JavaScript

Starter solution: Personal tab in TypeScript
Create React App personal tab in TypeScript

Configurable tab using AAD and Silent Authentication
Shows pop-up authentication using ADAL, a deprecated auth library

Business to Citizen Consumer Communication Bot
Allows citizen end users get in touch with an SME / Support Agent working in Teams

MVC app creates, updates, deletes Teams channels
Shows Graph calls for Channels from C#

Teams bot saves user input to a SharePoint list
Teams bot saves user messages to a SharePoint list

Starter solution: Teams bot with SSO
Teams Bot authenticates users using Teams SSO

Starter solution: Channel/Group tab with SSO in C#
ASP.NET MVC channel/group tab provides a jQuery SPA with an access token using SSO

Starter solution: Personal tab with SSO in C#
ASP.NET MVC personal tab provides a jQuery SPA with an access token using SSO

Starter solution: Channel/Group tab with SSO in JavaScript
Create React App channel/group tab in JavaScript with Azure AD Single Sign-On

Starter solution: Channel/Group tab with SSO in TypeScript
Create React App channel/group tab in TypeScript with Azure AD Single Sign-On

Starter solution: Personal tab with SSO in JavaScript
Create React App personal tab in JavaScript with Azure AD Single Sign-On

Starter solution: Personal tab with SSO in TypeScript
Create React App personal tab in TypeScript with Azure AD Single Sign-On

Bot and tab to select a region
Displays and allows user to choose a region

Questionnaire Teams Meeting App
Questionnaire meeting app provides pre-meeting app experience for Teams meeting attendees to ask questions

Document manager sample app using messaging extensions
Provides a basis for building a digital asset / document repository management app.

Search messaging extension with SSO
Search messaging extension including a configuration page and Bot Service SSO authentication

Content Bubble Meeting app
Illustrates how to implement the "content bubble" in-meeting experience

Content Bubble Meeting app
Illustrates how to implement the "content bubble" in-meeting experience

Tab notifies users via the Teams activity feed
Simple Kudos app notifies users of new kudos via the Teams activity feed and Microsoft Graph
Action Messaging Extension updates Adaptive Card
Action based messaging extension posts an adaptive card to a Teams channel as a bot and allows updating the card with an action messaging extension.

Teams Context Viewer App
Sample showcasing every Teams SDK context in every type of tab.

Azure Communication Services – Teams InterOp with Call Routing
The sample supports Azure Communication Services (ACS) and Teams Interoperation to allow citizen end users get in touch with an SME / Support Agent belonging to a business entity over a video call.

ReporterPlus - Teams Device Capabilities Application
The sample app demonstrates the power of integrating Teams platform with device capabilities such as camera, QR or barcode scanner, photo gallery and microphone

Tab meeting stageview
Action messaging extension authenticates with SSO and calls Microsoft Graph.

MS Teams Incident Management Bot
This sample illustrates sequential workflow, user specific views, and upto date adaptive cards bot. This bot has been created using Bot Framework, it shows how to create a simple incidence and resolution using Adaptive Cards v1.4.

Card Bot
This sample demonstrates the new Universal Action Model for adaptive cards using Node/TypeScript
Bot meeting lifecycle basics
Very simple bot acts on the Teams meeting's lifecyle, posts a message to the meeting's chat when the meeting starts or ends

Tab meeting record name
Meeting app lets attendees record their names and listen to how other people pronounce their names
Teams Tab w/SSO and MSAL2, Graph Toolkit and yo teams
Shows how to use Microsoft Graph toolkit in a yo teams project - with authentication!

Bot meeting lifecycle provides meeting feedback
Shows how to write a bot that gathers and shares feedback at the end of a meeting

Teams Leaderboard in Blazor
Shows how to use Microsoft Teams Toolkit with Blazor to build a Teams personal tab

Bot Composer Teams Action Messaging Extension (EXPERIMENTAL)
Sample illustrates how to build an Action-based Messaging Extension

.NET Teams Search Messaging Extension
Sample illustrates how to build a Search-based Messaging Extension

.NET Teams Action Messaging Extension
Sample illustrates how to build an Action-based Messaging Extension

.NET Search Messaging Extension with Config Page and Authentication
Search messaging extension including a configuration page and Bot service authentication

.NET Messaging Extension, Bot sends on behalf of a user
Messaging extension shows a card and bot sends on behalf of a user

.NET Teams Task Module with Bot Framework
Dislay a Task Module from Hero or Adaptive Card buttons and receive input from the Task Module in the bot

.NET Teams Link Unfurling
Messaging extension that customizes the view of hyperlinks in conversation

.NET Teams File Upload Bot
Simple bot for Microsoft Teams shows how to upload files

.NET Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

.NET Bot starts a thread in a specific Teams channel
Sample shows how to create a new conversation thread in a channel in Microsoft Teams

Java Teams Search Messaging Extension
Sample illustrates how to build a Search-based Messaging Extension

Java Teams Action Messaging Extension
Sample illustrates how to build an Action-based Messaging Extension

Java Messaging Extension with Auth and Config
Search messaging extension including a configuration page and Bot service authentication

Java Messaging Extension, Bot sends on behalf of a user
Messaging extension shows a card and bot sends on behalf of a user

Java Teams Task Module with Bot Framework
Dislay a Task Module from Hero or Adaptive Card buttons and receive input from the Task Module in the bot

Java Teams Link Unfurling
Messaging extension that customizes the view of hyperlinks in conversation

Java Teams File Upload Bot
Simple bot for Microsoft Teams shows how to upload files

Java Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

Java Bot starts a thread in a specific Teams channel
Sample shows how to create a new conversation thread in a channel in Microsoft Teams

Javascript Teams Search Messaging Extension
Sample illustrates how to build a Search-based Messaging Extension

Javascript Teams Action Messaging Extension
Sample illustrates how to build an Action-based Messaging Extension

Javascript Messaging Extension with Auth and Config
Search messaging extension including a configuration page and Bot service authentication

Javascript Messaging Extension, Bot sends on behalf of a user
Messaging extension shows a card and bot sends on behalf of a user

Javascript Teams Task Module with Bot Framework
Dislay a Task Module from Hero or Adaptive Card buttons and receive input from the Task Module in the bot

Javascript Teams Link Unfurling
Messaging extension that customizes the view of hyperlinks in conversation

Javascript Teams File Upload Bot
Simple bot for Microsoft Teams shows how to upload files

Javascript Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

Javascript Bot starts a thread in a specific Teams channel
Sample shows how to create a new conversation thread in a channel in Microsoft Teams

Python Teams Search Messaging Extension
Sample illustrates how to build a Search-based Messaging Extension

Python Teams Action Messaging Extension
Sample illustrates how to build an Action-based Messaging Extension

Python Messaging Extension with Auth and Config
Search messaging extension including a configuration page and Bot service authentication

Python Messaging Extension, Bot sends on behalf of a user
Messaging extension shows a card and bot sends on behalf of a user

Python Teams Task Module with Bot Framework
Dislay a Task Module from Hero or Adaptive Card buttons and receive input from the Task Module in the bot

Python Teams Link Unfurling
Messaging extension that customizes the view of hyperlinks in conversation

Python Teams File Upload Bot
Simple bot for Microsoft Teams shows how to upload files

Python Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

Python Bot starts a thread in a specific Teams channel
Sample shows how to create a new conversation thread in a channel in Microsoft Teams

Typescript Teams Search Messaging Extension
Sample illustrates how to build a Search-based Messaging Extension

Typescript Teams Action Messaging Extension
Sample illustrates how to build an Action-based Messaging Extension

Typescript Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

Typescript Bot starts a thread in a specific Teams channel
Sample shows how to create a new conversation thread in a channel in Microsoft Teams

Bot Composer Teams Conversation Bot
Sample shows how to incorporate basic conversational flow into a Teams application. It also illustrates a few of the Teams specific calls you can make from your bot.

.NET Bot with Teams Authentication
Simple bot uses Auth Dialog or Teams SSO to authenticate the user

Java Bot with Teams Authentication
Simple bot uses Auth Dialog or Teams SSO to authenticate the user

Javascript Bot with Teams Authentication
Simple bot uses Auth Dialog or Teams SSO to authenticate the user

Python Bot with Teams Authentication
Simple bot uses Auth Dialog or Teams SSO to authenticate the user

Tab meeting stageview
Teams meeting app showing up during in-Meeting experince in the sidePanel but also, once shared, in the stageView for all meeting participants.

Teams Tab with yo teams and React router
Shows how to implement React routing in a Teams app created with the yo teams generator

Message forwarder messaging extension
This messaging extension allows forwarding Teams chat messages to other Teams or chats

Move your filters
Sample that reads filters from Gmail and creates matching rules and filters in Outlook

Microsoft Graph Search API Bot
Bot searches for items such as messages, events, files, and SharePoint list items

Movie Vote - Tab meeting w/stageview
Teams meeting app shows up in sidePanel and on stageView. Lets users vote for a movie in sidePanel and shwing then the most voted one for all in stageView