Skip to main content
Before you start: setting up the app itself (Steps 1–5) is free and works with any Microsoft account. But to actually create meetings, the mailbox you use as the organizer (Step 6) needs a paid Microsoft 365 license that includes Exchange Online and Microsoft Teams (e.g. Business Basic/Standard/Premium, or an Enterprise E1/E3/E5 plan) — a mailbox without one of these won’t work as an organizer. If you just want to try this out first without paying, Microsoft’s free 365 Developer Program gives you a sandbox organization with full licensing at no cost.

Step 1 — Register the application

  1. Sign in to the Microsoft Entra admin center with an account that has at least the Cloud Application Administrator role.
  2. Go to App registrations → New registration.
  3. Give it a name, e.g. Opigno MS Teams Integration.
  4. 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.
  5. Leave Redirect URI empty and click Register.
  6. On the page that opens, copy the Application (client) ID — you’ll need it later.
Official documentation: Register an application

Step 2 — Create a secret password for the app

  1. Go to Certificates & secrets → New client secret.
  2. Add a description.
  3. 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.All
  • Calendars.ReadWrite
  • User.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).*
  1. Still on the API permissions page, click Grant admin consent for <your organization>.
  2. Confirm all three permissions now show as Granted.
Official documentation: Grant admin consent

Step 5 — Find your Tenant ID

  1. In the Entra admin center, go to Overview.
  2. Copy the Tenant ID shown there — this identifies your organization to Microsoft.
Official documentation: Find your Tenant ID

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).
  1. Make sure the MicrosoftTeams module is installed (once, on whichever computer you’ll run these commands from):
  2. Sign in:
  3. 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 OpignoMeetingsPolicy as an example; use whatever name makes sense to you, just use the same name consistently in the next two commands.
  4. Create the policy, using your chosen name and the Client ID from Step 1:
  5. Apply the policy to the organizer mailbox from Step 6:
Repeat step 5 once per mailbox, if more than one address needs to be able to organize meetings. Skipping this step entirely is also an option if you’re fine with the app being able to act on every mailbox in your organization — it’s a safety narrowing, not a requirement.

Step 7 — Fill in the settings form on your Opigno instance

  1. Go to /opigno-ms-teams/settings on your site.
  2. 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
  3. 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.

If something goes wrong