cal.com
cal.com copied to clipboard
MS Teams + MS Calendar Bad Implementation
Issue Summary
Microsoft Teams + Microsoft Outlook Calendar Meetings are not being created as online meetings, and have unprofessional description.
Steps to Reproduce
- Install MS Teams app from the app marketplace
- Setup MS Outlook as your main Calendar
- Create a Booking and set MS Teams as the meeting software
- Book a meeting
- Atendees will receive 2 emails: 1 from Cal.com + 1 from MS Calendar
Actual Results
-
Attendees will get 2 emails. 1 from Cal.com and 1 from MS Calendar
-
The one from MS Calendar looks like this:
-
When I go to MS Teams to check this is what I see:
Expected Results
-
This is what that email would normally look like when I create a meeting through Calendly or MS Teams directly:
Notice how the location is Not the Meeting Link but an arbitrary URL, in this case Calendly's event, and the "Online Meeting" switch is turned on, letting Microsoft handle the link creation, instead of creating a link and then attaching it to the calendar event
To address the issue with Microsoft Teams meeting invitations not being created as online meetings and having an unprofessional description, it's essential to ensure that the meetings are created through the Microsoft Graph API as online meetings. This approach will enable Microsoft Teams to handle the invitation layout and details, ensuring a professional appearance.
Here's a more direct solution to implement:
-
Use Microsoft Graph API: Ensure your integration creates the meeting as an online Teams meeting directly through the Microsoft Graph API. This action will automatically set the meeting as an online event and allow Teams to manage the invitation details.
-
Customize Email Invitations: If you're sending additional emails through your application, use the
AttendeeScheduledEmail
class as a reference for generating professional-looking email content. Include thejoinWebUrl
prominently in your email template to make it easy for attendees to join the meeting. -
Automate and Customize: Integrate the email sending functionality into your meeting creation workflow. After creating the meeting and obtaining the
joinWebUrl
, generate a customized email invitation using your template and send it to all attendees. -
Error Handling and Localization: Implement error handling for a smooth user experience and use localization and time zone information to ensure the email content is relevant and correctly formatted for all recipients.
By following these steps, you can improve the professionalism of your Microsoft Teams meeting invitations and ensure they are recognized as online meetings. This approach leverages the capabilities of the Microsoft Graph API and custom email templates to enhance the overall user experience.
Details
Sources
- [CAL-3401] MS Teams not clickable in the calendar invite
- [CAL-3364] Team Invite Email weird formatting
- Teams app not creating join button, only a teams link
- [CAL-378] MS Teams link not showing in the confirmation email
- Microsoft Teams No invite link in email - Self Hosted
- packages/app-store/office365video/lib/VideoApiAdapter.ts
- packages/emails/templates/attendee-scheduled-email.ts
- packages/app-store/office365video/lib/VideoApiAdapter.test.ts
- apps/web/lib/clock.ts
- apps/web/public/static/locales/en/common.json
- packages/features/bookings/Booker/utils/dates.tsx
- packages/features/bookings/lib/timePreferences.ts
- packages/emails/templates/organizer-scheduled-email.ts
- packages/app-store/_utils/oauth/OAuthManager.ts
About Dosu This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
To continue the conversation, mention @dosu.
@joeauyeung
Is this matter of permissions? Or bad implementation?
@buzzard10 This is a bad implementation of the MS Teams integration with Outlook/MS Calendar
@ldpg-dev, it was functioning for me a few weeks ago; I had a link to the meeting, but now it's not working. What has changed?
I honestly don't know, @milospuac and @joeauyeung have you been able to take a look at this? @ciaranha Not sure why it's not labeled as a bug anymore.
The Microsoft Graph API doesn't support suppressing invitation mails when creating an event
object.
- https://techcommunity.microsoft.com/t5/microsoft-365-developer-platform/ability-to-update-or-create-an-event-without-sending-a/idi-p/2335070
- https://learn.microsoft.com/en-us/answers/questions/1074414/create-an-event-but-dont-send-invitations
- https://learn.microsoft.com/en-us/answers/questions/997970/msgraph-api-event-creation-suppress-email-feature
The only way I see for solving the duplicate mail issue is disabling Cal.Com notification mails, if an event was created using the office365calendar
app.
This issue is the invalid email. If you look at the screenshots in the original post of this issue, you see there is an invalid email address. Cal.com keeps adding that "invalid email address" to the Microsoft Teams meetings. If that email is removed and the meeting updated. then it works just fine. But that would mean, after each meeting is created you have to go in and edit it, and when you do, it sends an update notification to the client which doesn't look professional. I had to switch to Calendly because of this issue. I'm waiting till it gets fixed to switch back to cal.com. I opened a ticket a long while ago, but it went nowhere.
Also the description is poorly formatted, you can see there are no line breaks. Again, I'm not sure why this is labeled as "Improvement" and not as "bug", this is certainly a bug.
Any updates on this? I really don't want to, but I'm going to have to migrate my entire team back to Calendly because of this issue. I work in Customer Onboardings, and we send an AI recorder into the meetings and give the video links to the customers to review later, but because the Online Meeting isn't checked, the recorder isn't scheduled to enter the meeting and we have to manually send it in, which also doesn't auto trigger the video to send to the customer later. It's becoming a major problem.
Yeah, Microsoft Teams become a really popular service in COVID, and we're using this every day. Unfortunately, based on my last tests i can say that:
- It doesn't generate link to meeting automatically
- Calcom doesn't support webhook MEETING END for Microsoft Teams.
How about adding an option not to provide Microsoft's API with the attendee's email addresses? We also don't like the current behavior (of MS, that is!), but couldn't find any other workaround yet.