Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Hi Wocademy We-Ace,
Thank you for posting your question in the Microsoft Q&A forum.
Please note that our forum is a public platform, and we will modify your question to hide your personal information in the description. Kindly ensure that you hide any personal or organizational information the next time you post an error or other details to protect personal data.
Based on the official doc for Teams meeting call event change notifications, the resource path is supported as: communications/onlineMeetings(joinWebUrl='{joinWebUrl}')/meetingCallEvents. The key requirement is that joinWebUrl must be the fully URL‑encoded value of the entire Teams join link (including https://, path, and the ?context=... query string). In your payload, the join URL is only partially encoded (the 19%3ameeting... part), but the rest of the URL still contains reserved characters like /, ?, = which causes Microsoft Graph to fail parsing the OData key and return “Bad Request: Error in query syntax.”
Please try taking the original join link from Teams and run a single full encoding pass (e.g., encodeURIComponent(rawJoinUrl)), then use that encoded string inside joinWebUrl='...'. The encoded value should look like the doc example starting with https%3A%2F%2Fteams.microsoft.com%2F...%3Fcontext%3D%257b...%257d.
Also, if you need participant join/leave signals, consider rich notifications (includeResourceData, encryption certificate fields) as recommended in the same article.
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.