Getting Ready: The Meeting Scheduler Problem
Understand the meeting scheduler design and learn the questions to further simplify this problem.
Problem definition
A meeting scheduler software enables organizations to efficiently arrange and manage meetings for multiple participants, ensuring optimal use of meeting rooms and everyone’s time. The system helps find a suitable time and location by checking participants’ availability, room capacity, and preferences. Organizers and participants can book, update, or cancel meetings; add or remove attendees; and receive real-time notifications for all meeting changes. When participants respond to invites or remove themselves from a meeting, their calendars are automatically updated to reflect their participation status.
In this LLD interview case study, your focus will be on:
Assigning available meeting rooms based on room capacity, schedule, and participant count
Determining optimal meeting times by analyzing the availability of all required attendees
Managing the full meeting life cycle: creation, updates, cancellations, and participant management
Sending notifications for all meeting-related events, and updating calendars automatically when meetings are accepted, declined, or modified
Tracking each participant’s invite/response status in the meeting record, and handling changes such as removals, cancellations, and overlapping bookings
Note: This system model applies to any organization or platform that requires collaborative meeting management, from startups to enterprise-level operations.
Expectations from the interviewee
It is important to narrow down the components you will include in your design of a meeting scheduler. The following section provides an overview of some of the main expectations that the interviewer will want to hear you discuss in more detail during the interview.
Room assignment
A meeting scheduler is responsible for assigning a meeting room to a scheduled meeting. Make sure to ask the following questions from the interviewer to figure out how this assignment works:
How does the system determine available rooms?
How important is the capacity of a room when assigning a room for a meeting?
Availability of attendees
There are multiple attendees in a meeting, and all attendees have different schedules. You may ask the following questions to understand how the scheduler works:
How does the system check the availability of the attendees?
How does the system access the meeting information of all attendees?
Design approach
We will design this Meeting Scheduler system using the bottom-up design approach. For this purpose, we will follow the steps below:
First, we’ll identify the simple core entities such as
MeetingRoom
,Interval
,Participant
, andCalendar
, defining their responsibilities and relationships.Next, we’ll model how meetings are created, how the scheduler checks room and participant availability, assigns suitable rooms, and sends notifications for bookings, cancellations, and updates.
We’ll ensure the design gracefully handles conflicts, last-minute updates, recurring meetings, and edge cases like overlapping events or room shortages.
This approach will incorporate SOLID principles and design patterns, ensuring the system is scalable, maintainable, and adaptable to future needs.
Diagrams and sample code will illustrate the main workflows, class structures, and collaboration between entities.
Design pattern
During an interview, it is always a good practice to discuss the design patterns that the meeting scheduler falls under. Stating the design patterns gives the interviewer a positive impression and shows that the interviewee is well-versed in the advanced concepts of object-oriented design.
Try to answer the following question. If you are not familiar with design patterns, don’t worry! You can learn about them by asking questions like, “Define design patterns.”
Let’s explore the requirements of the meeting scheduler in the next lesson.