Greetings!
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.
Happy learning ☺
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 investigation
I 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 components
We 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
Design considerations
- Create, update, and cancel meetings
- On/off the feature by the user
- User can arrange their meetings without login into our system
- Event-driven
Comments
Post a Comment