ColoredCow / portal

A hub-and-spoke platform for organizations to effectively manage their operations and data. Uses GSuite.
MIT License
55 stars 52 forks source link

Update Google calendar schedule on updating the schedule from portal #2076

Open P4NK4J opened 2 years ago

P4NK4J commented 2 years ago

Describe the task Currently, if we update the schedule of interviews from the portal, the google calendar event doesn't change. This issue needs to be done into two phases

  1. Research whether updating any existing google event is possible if we make an update to any interview scheduled from the portal. If not, please provide proper knowledge information here
  2. If it's possible, we would like to update the calendar event, if any update to a scheduled interview is made from the portal. The interview schedule is available on the evaluation page, as shared in the following screenshot.
  3. If the interview schedule is updated, check whether the invitation is sent from Google for the updated event or not. If not, we would require sending an email to the assignee and the candidate (because the event is created on both the user's calendars).
image

You can also use Gmail SMTP credentials to use emails and google calendar from your local machine. We already have Google calendar integrated with the portal, for interview schedules. Hence you can take reference from that package.

P4NK4J commented 2 years ago

The email template content is yet to be speculated. This would be updated very soon, after a couple of days

rathorevaibhav commented 2 years ago

Breakdown for this task as discussed with @NirmalNegi07

  1. Understand the current flow of Google Calendar integration and where is it being used in the system.
  2. Understand the code implementation of Google Calendar integration
  3. Understand the updated flow of the system based on requirements and where/which files you may have to change with new code.
  4. Research on the Google Calendar update functionality
  5. Build a small proof-of-concept that updates the Google Calendar for a fixed calendar event ID.
    1. Create a new controller where we make a simple Calendar API call
    2. Copy the code from calendar create functionality and create a new calendar event
    3. Check the responses from the create functionality. Google must be sending a unique ID that we can use for update.
    4. Use this unique ID to write the update calendar functionality
    5. Write the code that takes the calendar id and updates the start time for that calendar event
  6. Integrate this proof of concept within the required flow
    1. Put the POC within the flow
    2. See if we are already storing calendar ID in database. If not, we need to save it by updating the create functionality in the portal.
    3. Replace the unique ID with the calendar ID from database for the calendar event we want to update
    4. Replace the time to update from new time from database