ecederstrand/exchangelib

Unable to join meetings created through CalendarItem.

HsungRa opened this issue · 3 comments

Background: exchangelib version: 5.1.0

Issue: Meetings created using exchangelib#CalendarItem#save do not have the "Join" button in Teams, unlike meetings created using the Teams software.

Code:

def create_meeting(subject: str,
                   body: str,
                   required_attendees: List[str],
                   time_from: datetime,
                   time_to: datetime):
    account: Account = __get_account()
    item: CalendarItem = CalendarItem(
        account=account,
        folder=account.calendar,
        start=EWSDateTime.from_datetime(time_from).astimezone(account.default_timezone),
        end=EWSDateTime.from_datetime(time_to).astimezone(account.default_timezone),
        subject=subject,
        body=body,
        is_meeting=True,
        is_online_meeting=True,
        required_attendees=required_attendees,
    )

    return item.save(conflict_resolution=NEVER_OVERWRITE, send_meeting_invitations=SEND_TO_ALL_AND_SAVE_COPY)

I used the above function to create a calendar meeting, and it returned success. The corresponding record is visible in Teams Calendar. However, the issue is that the meeting created through exchangelib#CalendarItem#save does not display the "Join" button, unlike the meetings created using the Teams software.

create-by-teams:

create-by-teams

create-by-exchangelib:

create-by-exchangelib

Please help,Thanks

exchangelib is not an Outlook or Teams replacement. It's a client that wraps the EWS API.

To explore this further, I would suggest that you create two identical calendar items, one with exchangelib and one with Teams. Then use exchangelib to compare all fields on the two items to find out what the difference is. It's possible that Teams sets a URL or similar when it creates the calendar item.

exchqngelib is not an Outlook or Teams replacement. It's a client that wraps the EWS API.

To explore this further, I would suggest that you create two identical calendar items, one with exchangelib and one with Teams. Then use exchangelib to compare all fields on the two items to find out what the difference is. It's possible that Teams sets a URL or similar when it creates the calendar item.

ok, thanks for your help

Feel free to add the solution here, if you find out how to solve your task.