Skip to content

Updating an Outlook event's description removes its Teams join link

Updated

TL;DR

Microsoft Graph replaces an event's body as a whole on update, and the Teams join link, meeting ID and passcode live in that body. Send a new description on its own and the event keeps its Teams meeting, but the invitation attendees see no longer shows how to join. Rebuild the Teams block after your new description, finding the link in either of Teams' layouts, or from onlineMeeting.joinUrl.

What happens

When Outlook creates a Teams meeting on an event, it writes the joining details into the event's body: a "Join" link, the meeting ID, the passcode and the dial-in and organizer options. That block is part of the description as far as Graph is concerned.

An update that sets body replaces the whole body. Graph does not write the Teams block again, so the new description goes out to attendees without the join link. The meeting still exists; people just cannot find their way into it.

Reported by Pyas customers, rechecked on Microsoft 365 in October 2026

Updating the description of an event with a Teams meeting left attendees with an invitation that had no join link. We rechecked the behavior, and the fix, against a real Microsoft 365 Teams invitation.

The layout changed too

Code that rebuilds the block has to find the link first. Older Teams invitations used the text "Join the meeting now"; current ones read "Join:" followed by the link. Code that only looks for the old wording rebuilds a block with the meeting ID and passcode but no link.

What to do

  • Keep the Teams block when you change the description. Read the current body, cut out the Teams block as Outlook wrote it, and append it after your new text before you send the update.
  • Find the link in either layout, and when neither matches, use the link Graph reports for the meeting, onlineMeeting.joinUrl.
  • Don't add the block twice. If the new description already contains it (because you read the body, edited it and sent it back), send it as it is.

How Pyas handles it

When you change an Outlook event's description through Pyas, the Teams block is kept exactly as Outlook wrote it, dial-in and organizer options included, after your new description. A description that already contains it is sent unchanged, and Zoom meeting details follow a new description the same way.

Teams on a personal Microsoft account saves the event without a linkHow to add a Google Meet, Teams or Zoom link to a calendar event with an API