Amazon
Interview
Design
Meeting Scheduler
Closed

Amazon Interview- Design Meeting Scheduler

Master System Design with Codemia

Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.

Introduction

A meeting scheduler interview question is usually testing whether you can model availability, conflicts, time zones, and scaling tradeoffs without getting lost in UI details. The strongest answer starts by narrowing the scope, then shows a clean design for calendar storage, free-slot search, invitation workflow, and conflict handling.

Clarify the Scope First

Before drawing boxes, define what the system must do:

  • create meetings for one organizer and many invitees
  • store calendars and attendee responses
  • detect conflicts
  • suggest candidate time slots
  • handle time zones correctly

Then explicitly defer things like video conferencing, enterprise permissions, or room booking unless the interviewer asks for them.

Core Data Model

A simple model usually includes:

  • 'User'
  • 'CalendarEvent'
  • 'Meeting'
  • 'Invitation'

A practical schema might look like:

text
1User(id, email, timezone)
2CalendarEvent(id, user_id, start_utc, end_utc, status)
3Meeting(id, organizer_id, title, start_utc, end_utc)
4Invitation(meeting_id, user_id, response)

Store times in UTC and convert only at presentation time. That avoids daylight-saving and cross-region comparison bugs.

High-Level Architecture

A reasonable service split is:

  • user service for identity and profile
  • calendar service for events and availability
  • scheduler service for finding candidate slots
  • notification service for invite emails or pushes

For the interview, you do not need to over-distribute the system. A modular monolith with clear boundaries is often easier to explain than five microservices with vague responsibilities.

Scheduling Flow

A common happy path is:

  1. organizer submits participant list, duration, and time window
  2. scheduler queries busy intervals for each attendee
  3. availability engine computes candidate slots
  4. organizer selects one slot
  5. meeting is written and invitations are sent

The main algorithmic work is the intersection of free time across attendees.

Example: Finding Shared Free Slots

This Python example shows the basic idea for interval intersection. Each participant provides busy intervals in UTC, and the function returns gaps large enough for the requested duration.

python
1from datetime import datetime, timedelta
2
3
4def common_free_slots(busy_lists, window_start, window_end, duration_minutes):
5    points = []
6    for busy in busy_lists:
7        for start, end in busy:
8            points.append((start, 1))
9            points.append((end, -1))
10
11    points.sort()
12    active = 0
13    current = window_start
14    free = []
15
16    for time, delta in points:
17        if time > current and active == 0:
18            if time - current >= timedelta(minutes=duration_minutes):
19                free.append((current, time))
20        active += delta
21        current = max(current, time)
22
23    if active == 0 and window_end - current >= timedelta(minutes=duration_minutes):
24        free.append((current, window_end))
25
26    return free
27
28
29busy_lists = [
30    [(datetime(2026, 3, 11, 13), datetime(2026, 3, 11, 14))],
31    [(datetime(2026, 3, 11, 15), datetime(2026, 3, 11, 16))],
32]
33
34print(common_free_slots(
35    busy_lists,
36    datetime(2026, 3, 11, 12),
37    datetime(2026, 3, 11, 18),
38    30,
39))

In production, you would index events by user and time range so these scans stay efficient.

Key Design Decisions

A strong interview answer usually mentions:

  • use UTC for storage
  • store attendee response state separately from meeting metadata
  • query only within a bounded scheduling window
  • precompute or cache busy blocks for hot calendars
  • make invitation sending asynchronous

You should also discuss whether double-booking is allowed. Some calendars permit tentative overlaps, while others enforce strict exclusivity.

Scaling Considerations

The expensive operation is availability search across many users. The usual optimizations are:

  • time-range indexes on calendar events
  • caching free/busy summaries
  • asynchronous notification fan-out
  • partitioning data by user or organization

Most scheduler traffic is read-heavy, so caching and indexed interval queries matter more than exotic write scaling.

Common Pitfalls

  • Storing local times instead of UTC.
  • Ignoring daylight-saving transitions when comparing availability.
  • Treating scheduling as a simple CRUD problem instead of an interval-search problem.
  • Making notifications part of the synchronous write path.
  • Overcomplicating the design before clarifying basic product requirements.

Summary

  • Start by narrowing the feature scope and naming the key requirements.
  • Model meetings, user calendars, and invitation responses separately.
  • Store timestamps in UTC and convert only for display.
  • The core algorithm is finding common free intervals across attendees.
  • In interviews, clarity about tradeoffs usually matters more than maximal system complexity.

Course illustration
Course illustration

All Rights Reserved.