calcom / cal.com

Scheduling infrastructure for absolutely everyone.
https://cal.com
Other
32.47k stars 8.02k forks source link

MS Teams + MS Calendar Bad Implementation #14765

Open ldpg-dev opened 6 months ago

ldpg-dev commented 6 months ago

Issue Summary

Microsoft Teams + Microsoft Outlook Calendar Meetings are not being created as online meetings, and have unprofessional description.

Steps to Reproduce

  1. Install MS Teams app from the app marketplace
  2. Setup MS Outlook as your main Calendar
  3. Create a Booking and set MS Teams as the meeting software
  4. Book a meeting
  5. Atendees will receive 2 emails: 1 from Cal.com + 1 from MS Calendar

Actual Results

Expected Results

dosubot[bot] commented 6 months ago

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:

  1. 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.

  2. 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 the joinWebUrl prominently in your email template to make it easy for attendees to join the meeting.

  3. 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.

  4. 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](https://github.com/calcom/cal.com/issues/14529) - [[CAL-3364] Team Invite Email weird formatting](https://github.com/calcom/cal.com/issues/14435) - [Teams app not creating join button, only a teams link](https://github.com/calcom/cal.com/issues/6681) - [[CAL-378] MS Teams link not showing in the confirmation email](https://github.com/calcom/cal.com/issues/5546) - [Microsoft Teams No invite link in email - Self Hosted](https://github.com/calcom/cal.com/issues/3854) - [packages/app-store/office365video/lib/VideoApiAdapter.ts](https://github.com/calcom/cal.com/blob/main/packages/app-store/office365video/lib/VideoApiAdapter.ts) - [packages/emails/templates/attendee-scheduled-email.ts](https://github.com/calcom/cal.com/blob/main/packages/emails/templates/attendee-scheduled-email.ts) - [packages/app-store/office365video/lib/VideoApiAdapter.test.ts](https://github.com/calcom/cal.com/blob/main/packages/app-store/office365video/lib/VideoApiAdapter.test.ts) - [apps/web/lib/clock.ts](https://github.com/calcom/cal.com/blob/main/apps/web/lib/clock.ts) - [apps/web/public/static/locales/en/common.json](https://github.com/calcom/cal.com/blob/main/apps/web/public/static/locales/en/common.json) - [packages/features/bookings/Booker/utils/dates.tsx](https://github.com/calcom/cal.com/blob/main/packages/features/bookings/Booker/utils/dates.tsx) - [packages/features/bookings/lib/timePreferences.ts](https://github.com/calcom/cal.com/blob/main/packages/features/bookings/lib/timePreferences.ts) - [packages/emails/templates/organizer-scheduled-email.ts](https://github.com/calcom/cal.com/blob/main/packages/emails/templates/organizer-scheduled-email.ts) - [packages/app-store/_utils/oauth/OAuthManager.ts](https://github.com/calcom/cal.com/blob/main/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.

milospuac commented 6 months ago

@joeauyeung

buzzard10 commented 5 months ago

Is this matter of permissions? Or bad implementation?

ldpg-dev commented 5 months ago

@buzzard10 This is a bad implementation of the MS Teams integration with Outlook/MS Calendar

buzzard10 commented 5 months ago

@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?

ldpg-dev commented 5 months ago

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.

krakowski commented 5 months ago

The Microsoft Graph API doesn't support suppressing invitation mails when creating an event object.

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.

SecureCPU commented 4 months ago

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.

ldpg-dev commented 4 months ago

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.

jbcameraguy commented 3 months ago

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.

buzzard10 commented 3 months ago

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:

  1. It doesn't generate link to meeting automatically
  2. Calcom doesn't support webhook MEETING END for Microsoft Teams.
herzkerl commented 2 months ago

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.

tobiedesgreniers commented 1 month ago

Hi guys, are there any update on this? An opened PR? Priorities set? An investigation? Is it going to be fix in the next few months or should we migrate to another scheduling platform?

SecureCPU commented 1 month ago

Hi guys, are there any update on this? An opened PR? Priorities set? An investigation? Is it going to be fix in the next few months or should we migrate to another scheduling platform?

Unfortunately we've already had to migrate to another platform. Looking forward to when this is resolved to possibly migrate back. But this issue has been here for a very long while and there have been no updates. It completely messes us anyone using teams & outlook. Which these days is a lot of people & companies, so idk why it's taking so long to even give an update.

johan-cruxdata commented 2 weeks ago

+1 for priority on a resolution here. This is frustrating

buzzard10 commented 5 days ago

Anyone have any workaround? I have to go to each meeting separately and switch this checkbox to make it an online meeting. Then it sends updates to all invited contacts. It's frustrating.

wupdich commented 2 days ago

This is such a big problem, the bad implementation and the duplicate emails. I canโ€˜t recommend cal.com to my clients because of that. Workaround that I internally use right now to at least avoid duplicate emails is to add the event to a google calendar. Then I get automatically invited on my Outlook Calendar and the customer also just gets one email.