Share via

I want to get a meeting ID to access the meeting programmatically

Pat McCarty 0 Reputation points
2026-03-27T13:03:30.8+00:00

I want to get a meeting ID to access the meeting programmatically. I am using it to pull details, including attendees job titles via a PowerAutomate routine.

Microsoft Security | Microsoft Graph
0 comments No comments

1 answer

Sort by: Most helpful
  1. Q&A Assist
    2026-03-27T13:03:53.88+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    To access a meeting programmatically with Microsoft Graph or Teams meeting APIs, a stable meeting identifier is required. How to obtain it depends on where the meeting originates and what access level is available.

    1. Using Microsoft Graph calendar APIs (Exchange/Outlook meetings)

    For standard Outlook/Exchange meetings, the Graph calendar view exposes a meeting ID via the iCal UID:

    • Use Microsoft Graph PowerShell Get-MgUserCalendarView to find the meeting by time and user:
      • Filter by StartDateTime and EndDateTime and the participant’s user ID.
      • In the response, the ICalUId property is the meeting ID.

    From context:

    For each meeting that's listed in the output, the ICalUId parameter value is the meeting ID.

    This ICalUId can be stored and reused in Power Automate to look up the same meeting again via Graph.

    If admin access is available to Exchange Online, Get-CalendarViewDiagnostics also exposes a meeting identifier:

    For each meeting that's listed in the output, the value of the CleanGlobalObjectId parameter is the meeting ID.

    Either ICalUId (Graph) or CleanGlobalObjectId (Exchange) can be used as a stable key in automation.

    2. Getting the meeting ID from Outlook clients (if needed once, then store it)

    If the meeting is already on a user’s calendar and the ID is needed only once to seed an automated process, it can be extracted from the client and then stored for later programmatic use.

    Non-admin methods include:

    • Classic Outlook for Windows:
      1. Open the meeting in Outlook.
      2. FileSave As → save as .ics.
      3. Open the .ics in a text editor and search for UID:. The value after UID: is the meeting ID.
    • New Outlook for Windows:
      1. Locate a meeting invitation/response/update/cancellation in Inbox or Deleted Items.
      2. Right-click → Save As → save as .eml.
      3. Open the .eml in a text editor and search for UID= or decode the Base64 block starting with QkVHSU46VkNBTEVOREFS and then search for UID: in the decoded text.
    • Outlook on the web (Edge network tool):
      1. Open the calendar in Edge.
      2. Open Developer tools → Network tab.
      3. Filter by GetCalendarEvent.
      4. Click a day, then the meeting.
      5. Inspect the Response body; the UID value is the meeting ID.

    These UIDs correspond to the same logical meeting and align with the ICalUId used by Graph.

    3. Teams meeting details via Teams meeting apps API

    If the scenario involves a Teams meeting and a Teams app/bot is present in the meeting, the Teams meeting apps API can be used:

    GET /v1/meetings/{meetingId}
    

    The response includes:

    • details.id: The meeting's ID, encoded as a Base64 string.
    • details.msGraphResourceId: Used specifically for Microsoft Graph API calls.
    • details.joinUrl, details.title, details.type, etc.

    This details.id (Base64 meeting ID) and/or details.msGraphResourceId can be used as keys in downstream automation (for example, to correlate with Graph resources or store in Dataverse/SharePoint for Power Automate flows).

    In a Teams bot or meeting app, the meeting info can be retrieved in code and then surfaced to Power Automate via a custom connector or storage:

    • C# bot:
        MeetingInfo result = await TeamsInfo.GetMeetingInfoAsync(turnContext);
      
    • JavaScript bot:
        const details = await TeamsInfo.getMeetingInfo(context);
      

    4. Online meetings via Microsoft Graph CloudCommunications

    For online meetings (Teams) managed via Microsoft Graph CloudCommunications:

    • To retrieve an existing online meeting when the meeting ID is already known:
        Get-MgUserOnlineMeeting -UserId $userId -OnlineMeetingId $onlineMeetingId
      
      This returns details including join URL, attendees, and description.
    • To create or get an online meeting with a custom external ID (so automation can use that external ID as a stable key):
        Invoke-MgCreateOrGetCommunicationOnlineMeeting -BodyParameter @{ ExternalId = '<custom-id>'; Subject = '<subject>' }
      
      If a meeting with that ExternalId exists, it is returned; otherwise, it is created. The returned object includes the Graph meeting ID and join URL, which can then be used in Power Automate.

    5. Using the meeting ID in Power Automate

    Once a stable meeting identifier is available (ICalUId, CleanGlobalObjectId, Graph onlineMeetingId, or Teams details.id/msGraphResourceId):

    1. Store it in a data source (SharePoint list, Dataverse table, etc.).
    2. In Power Automate, use HTTP actions or Graph connectors to:
      • Query the meeting by that ID.
      • Expand attendees and then query Microsoft Graph user profiles to retrieve job titles.

    The key step is to choose one canonical ID (for example, ICalUId for calendar events or Graph onlineMeetingId/Teams details.id for Teams meetings) and use it consistently across Graph calls and flows.


    References:

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.