i want to extract microsoft teams meeting recordings, transcript, attachments and hyperlinks which shared in a meeting which i organised

Anonymous
2025-11-20T16:01:18.0633333+00:00

I want to fetch the IDs of meetings that I have organized and that occur within a specific time range.

On the first run, the code should return the IDs of all meetings where I am the organizer and that took place in the last 30 days.

On subsequent runs, the code should only return meetings that happened after the previous run up to the current time.

For example:

I schedule meetings at 8 AM, 9 AM, 11 AM, 1 PM, and 2 PM.

If I run the code at 10 AM, it should return the meeting IDs for the 8 AM and 9 AM meetings.

  • If I run the code again at 4 PM, it should now only return the meeting IDs for the 11 AM, 1 PM, and 2 PM meetings, because those happened after the last run at 10 AM.

i also want to extract the recording and transcript if available and the attachments and hyperlinks which shared in chats of that meeting

how can i do that

Microsoft Teams | Development
Microsoft Teams | Development

Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs

0 comments No comments

2 answers

Sort by: Most helpful
  1. Teddie-D 19,760 Reputation points Microsoft External Staff Moderator
    2025-11-21T01:26:58.3+00:00

    Hi @Kaustubh Patil 

    Thank you for posting your question in the Microsoft Q&A forum. 

    This guide outlines the process for retrieving recordings, transcripts, attachments, and hyperlinks from Teams meetings using Microsoft Graph APIs. 

    1.Track meetings you organized 

    -First run: startDateTime = now - 30 days, endDateTime = now.  

    -Subsequent runs: startDateTime = lastRunTime, endDateTime = now.  

    GET /me/calendarView?startDateTime={ISO}&endDateTime={ISO}     &$select=id,subject,start,end,isOnlineMeeting,onlineMeetingUrl
    

     -Filter client-side: 

    const myEmail = userPrincipalNameOrPrimarySmtp;
    const mine = events.value.filter(ev =>
        ev.organizer?.emailAddress?.address?.toLowerCase() === myEmail.toLowerCase()
    );
    
    

    -Reference: List calendarView – Microsoft Graph

    2.Find the online meeting for a calendar event, use the onlineMeetingUrl (join URL) from the event and look up the meeting:  

    GET /me/onlineMeetings?$filter=JoinWebUrl eq '{joinUrl}'  
    

    The join URL must be URL-encoded
    Once you have the onlineMeetingId, you can query other resources. 
    Reference: Get onlineMeeting - Microsoft Graph v1.0 | Microsoft Learn

    3.Extract transcripts and recordings  

    -List transcripts: 

    GET /users/{userId}/onlineMeetings/{meetingId}/transcripts 
    

    -Download transcript content: 

    GET /users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content 
    

    -List recordings: 

    GET /users/{userId}/onlineMeetings/{meetingId}/recordings 
    

    -Download recording content: 

    GET /users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content  
    

    Recordings/transcripts only exist if the meeting was recorded and transcription was enabled.  References: 

    List transcripts - Microsoft Graph v1.0 | Microsoft Learn 

    List recordings-online meetings - Microsoft Graph beta | Microsoft Learn 

    4.Extract attachments and hyperlinks from meeting chat 

    -Every scheduled Teams meeting has a chat, the onlineMeeting object includes chatInfo.threadId. Use it to list chat messages:

    GET /chats/{threadId}/messages 
    

    -Attachments are available in message.attachments[], for example: 

    "attachments": [
      {
        "contentType": "reference",
        "contentUrl": "https://...",
        "name": "example.docx"
       }
    
    

    Use contentUrl to download the file. 

    Reference: Working with Microsoft Teams messaging APIs in Microsoft Graph - Microsoft Graph | Microsoft Learn

    -Hyperlinks can be extracted by parsing message.body.content (HTML) for <a href="..."> 

    5.Required permissions 

    -Calendars.Read 

    -OnlineMeetings.Read or OnlineMeetings.Read.All 

    -OnlineMeetingTranscript.Read.All 

    -OnlineMeetingRecording.Read.All 

    -Chat.Read or Chat.Read.All 

    -Files.Read.All

    I hope this helps. 


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".   

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.  

    Was this answer helpful?


  2. AI answer

    2025-11-20T16:01:57.0833333+00:00

    To extract Microsoft Teams meeting recordings, transcripts, attachments, and hyperlinks shared in a meeting you organized, you can utilize Microsoft Graph API. Here’s a general approach to achieve your requirements:

    1. Fetch Meeting IDs: Use the Microsoft Graph API to retrieve meetings where you are the organizer. You can filter these meetings by the start time to get meetings from the last 30 days or since the last run.
      • You can use the /me/events endpoint to get events (meetings) for the authenticated user. Make sure to filter based on the organizer and the start time.
      • For subsequent runs, store the last run time and use it to filter meetings that occurred after that time.
    2. Get Meeting Transcripts and Recordings: Once you have the meeting IDs, you can access the transcripts and recordings using the Graph API. The process involves:
      • Using the meeting ID to call the relevant Graph API endpoints to fetch the transcript and recording if they are available.
      • Meeting transcripts are typically available as .vtt files, and recordings are available as .mp4 files.
    3. Extract Attachments and Hyperlinks: For attachments and hyperlinks shared in the meeting chat:
      • You can access the chat messages associated with the meeting using the Graph API. Look for messages that contain attachments or hyperlinks.
      • The /chats/{chat-id}/messages endpoint can be used to retrieve messages from the chat related to the meeting.

    Example Code Snippet

    Here is a simplified example of how you might structure your code:

    const fetchMeetings = async () => {
        const response = await fetch('/me/events?filter=organizer/email eq \'your-email@example.com\' and start/dateTime ge \'lastRunTime\'');
        const meetings = await response.json();
        return meetings.value;
    };
    
    const fetchTranscriptsAndRecordings = async (meetingId) => {
        const transcriptResponse = await fetch(`/meetings/${meetingId}/transcripts`);
        const recordingResponse = await fetch(`/meetings/${meetingId}/recordings`);
        return {
            transcript: await transcriptResponse.json(),
            recording: await recordingResponse.json()
        };
    };
    

    Important Notes

    • Ensure you have the necessary permissions to access the meetings and their associated data through the Graph API.
    • The APIs to fetch meeting transcripts and recordings are metered, so be aware of any associated costs.

    This approach will allow you to efficiently gather the required information from your organized meetings in Microsoft Teams.

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

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.