Step 1 — Register the application
- Sign in to the Microsoft Entra admin center with an account that has at least the Cloud Application Administrator role.
- Go to App registrations → New registration.
- Give it a name, e.g.
Opigno MS Teams Integration. - Select who is allowed to use this app in Supported account types:
- Single tenant — only people in your own organization will use it. This is what the rest of this guide assumes.
- Multitenant — other organizations will connect to this same app too. This requires sending each organization a consent request through Microsoft’s own infrastructure.
- Leave Redirect URI empty and click Register.
- On the page that opens, copy the Application (client) ID — you’ll need it later.
Step 2 — Create a secret password for the app
- Go to Certificates & secrets → New client secret.
- Add a description.
- Click Add, then immediately copy the secret value — it’s shown only once and can’t be viewed again later.
Step 3 — Give the app the permissions it needs
Go to API permissions → Add a permission → Microsoft Graph → Application permissions, and add these three:OnlineMeetings.ReadWrite.AllCalendars.ReadWriteUser.Read.All
Step 4 — Approve those permissions
This step has to be done by someone with top-level admin rights (Privileged Role Administrator or Global Administrator).*- Still on the API permissions page, click Grant admin consent for
<your organization>. - Confirm all three permissions now show as Granted.
Step 5 — Find your Tenant ID
- In the Entra admin center, go to Overview.
- Copy the Tenant ID shown there — this identifies your organization to Microsoft.
Step 6 — Limit the app to that mailbox
By default, once approved, the app could technically create Teams meetings on behalf of any mailbox in your organization. This step narrows that down to just the mailbox from Step 6.Note: this step only narrows down who the app can create Teams meetings for. It does not limit calendar access — with the permissions this integration uses, calendar events can still be created on any mailbox in your organization regardless of this step. Restricting that too is possible, but uses a different, separate mechanism (Exchange Online access control) not covered in this guide.This requires someone with the Teams Administrator role to run a short set of commands (PowerShell).
-
Make sure the
MicrosoftTeamsmodule is installed (once, on whichever computer you’ll run these commands from): -
Sign in:
-
Pick a name for this policy — any short label works, you’re just naming it so you can refer to it later. This guide uses
OpignoMeetingsPolicyas an example; use whatever name makes sense to you, just use the same name consistently in the next two commands. -
Create the policy, using your chosen name and the Client ID from Step 1:
-
Apply the policy to the organizer mailbox from Step 6:
Step 7 — Fill in the settings form on your Opigno instance
- Go to
/opigno-ms-teams/settingson your site. - Enter:
- Tenant ID — from Step 5
- Client ID — from Step 1
- Client Secret — from Step 2
- Default meeting organizer — the mailbox from Step 6
- Enable MS Teams integration — turn on
- Save.
Keeping it running
- Before the secret expires: create a new one in Certificates & secrets, update it in the settings form, then delete the old one.
- Adding another mailbox: just repeat the “grant access” command (Step 7) for the new mailbox.
- If a secret is compromised: delete it immediately from Certificates & secrets and create/enter a replacement right away — until you do, the integration will stop working.