Skip to main content

Design a meeting event scheduler

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.
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
The external meeting service is acting as a mediator that is consuming, generates, and sending the meeting. However, the main components are iCalendar library and the Emailer.

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

Conclusion

I have shared my ideas on sending calendar events in this article. This has other 2 articles that I have written separately.

Happy learning ☺

Comments