I got a chance to work on a project where we had UIs for meeting schedules and later improved it to sync with external calendars as well. In this article, I am sharing my general ideas on that design.
The main business requirement is to access meetings anywhere whether from our system or an external system. (It is a different domain, for the article's purpose I refer to these as meetings)
Initial investigationI took a decision to make this a normal meeting request just like Google calendar as making this a meeting event would be more appropriate and user-friendly. My co-worker did the initial investigation on iCalendar format which is standard for calendar clients. We found that sending a meeting request is an email with the header "type=calendar". Initial investigation and the proof-of-concept is done! Let's define the main components.
Main componentsWe could complete this by adding simple classes/logic. However, that is not real engineering. Hence, I designed our own iCalendar library and an email API/library for this.
- iCalendar library (iCalendar article) - responsible for generating .ics calendar format
- Email API (email article) - responsible for sending meetings
- External meeting service - responsible for consuming events, calling the iCalendar library, and sending the meeting email
- Create, update, and cancel meetings
- On/off the feature by the user
- User can arrange their meetings without login into our system
ConclusionI have shared my ideas on sending calendar events in this article. This has other 2 articles that I have written separately.
Happy learning ☺