How to find Event using the joinUrl

Hariharan Rajkumar [external] 5 Reputation points
2024-02-05T11:15:34.35+00:00

My users create Calendar Invites (either via teams or outlook) and store the JoinUrl in a Sharepoint List for later reference.   My goal is to programmatically find the event that was created with this JoinUrl.

While I can easily locate the corresponding online meeting using graph api (filtering on JoinWebUrl), I haven't found a way to locate the corresponding Calendar Event.    I have tried variations of this with no success.

https://graph.microsoft.com/v1.0/users/{userid}/events?filter=onlineMeeting eq '{meeting join url}'
I know that joinUrl sit within onlineMeeting. I even recall, having receid an error messafge saying onlineMeeting cannot be searched. Any ideas to accomplish this task or better way to proceed are welcome !

Microsoft Teams | Development
Microsoft Teams | Development
Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Microsoft Security | Microsoft Graph
Microsoft Teams | Microsoft Teams for business | Other
0 comments No comments
{count} vote

2 answers

Sort by: Most helpful
  1. CarlZhao-MSFT 46,426 Reputation points
    2024-02-06T10:12:39.06+00:00

    Hi @Hariharan Rajkumar [external]

    You can get the event set first, and then use that 'joinUrl' to filter the event set to get the target event.

    For example:

    try {
    
        var result = await graphClient.Users["{user id}"].Events.GetAsync();
    
        var joinUrl = "{joinUrl}";
    
        if (result != null && result.Value != null)
        {
            foreach (var events in result.Value)
            {
                if (events.OnlineMeeting != null && events.OnlineMeeting.JoinUrl != null && events.OnlineMeeting.JoinUrl.Equals(joinUrl))
                {
                    Console.WriteLine(events.Id);
                }
            }
        }
        else
        {
            Console.WriteLine("No events found.");
        }
    
    }
    
    catch (ODataError odataError)
    {
        Console.WriteLine(odataError.Error.Code);
        Console.WriteLine(odataError.Error.Message);
    
    
    }
    

    User's image

    Hope this helps.

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


  2. Prasad-MSFT 10,361 Reputation points Microsoft External Staff Moderator
    2024-02-28T11:14:37.0333333+00:00

    It is not possible to directly find a calendar event using the JoinWebUrl.

    One way to find the calendar event is to search for the event in the user's calendar using the Microsoft Graph API and filter the results based on the subject, date, and time of the event. You can also try to search for the event in the user's calendar by looking for the JoinWebUrl in the event body.

    Thanks, 

    Prasad Das

    ************************************************************************* 

    If the response is helpful, please click "Accept Answer" and upvote it. You can share your feedback via Microsoft Teams Developer Feedback link. Click here to escalate.

    0 comments No comments

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.