bcgov / performance

Performance
Apache License 2.0
0 stars 2 forks source link

As an employee I want to generate an Outlook calendar invite from within the Performance platform #291

Open Travis-A-Clark opened 3 years ago

Travis-A-Clark commented 3 years ago

Now that Outlook calendar info is available in the sandbox, let's examine how we can generate a calendar invite sent to the participant email from within the platform. What permissions are required? Is there a mail server function in OpenShift to generate these types of events?

jp-Telus commented 3 years ago

Hello Travis,

It took me some time to perform multiple test cases which I documented in the attachment. Here are my findings:

Ticket 291 - Microsoft Office 365 outlook integration Testing Scenario.docx

In order to create a calendar event with email invitation send to the attendees, the following permission is required to call this API.

Permission type Permissions (from least to most privileged) Delegated (work or school account) Calendars.ReadWrite

The invite email will be send out from the MS Office Outlook 365 on cloud server, there should not require any mail server function on OpenShift platform.

Regard to the possibility to integrate calendar event between MS Outlook 365 on cloud and Performance Application, I have done some test scenarios (scenario 1-6 detail was documented on the below of this document).

When calendar event created in “Performance application” via the MS Graph API call, the invite email are send out to attendee(s), the attendee(s) could be accepted through the email or on their calendar. If the indicator “responseRequested” set to True when create a calendar event, the “Performance application” could track back attendee’s response status on the previous created calendar event by the unique ID provided by outlook.

If the meeting was rescheduled in MS outlook 365, the “Performance application” won’t get any notification or callback, the way to get the new schedule start and end time by calling the Get Event API call to get back the detail by Unique ID. If the meeting was cancelled by organizer, same situation, the “Performance application” won’t get any notification or callback, it need to call get event API call for checking the status by the unique ID.

In summary, once the event created from the “Performance application”, the user can change /cancel the event in MS Outlook 365, and there is no way to get any update from MS Outlook 365, the only way is to have a batch process to sync back the status and updated event detail from MS Outlook 365 by calling the API.

Travis-A-Clark commented 3 years ago

@jp-Telus Thanks for this, James! Does this mean that, if we were granted the appropriate permissions, we could have the Get Event API run every time a user logged into "Performance application" to sync with event details in MS Outlook 365? Could we make it part of the log on sequence?

Travis-A-Clark commented 3 years ago

@jp-Telus As discussed at today's sprint review, let's focus now on trying to generate an initial calendar invite in the platform (.ics) and send as an email attachment. Thanks!