MEDIUM

Design Google Calendar

Design a calendar application supporting event scheduling, recurring events, shared calendars, and meeting room booking.

Estimated Time: 45 minutes
#Scheduling#Recurring Events#Conflict Detection#Notifications
Solution Overview

Store events with timezone awareness. Use RRULE format for recurring events. Implement conflict detection using interval trees.

Hints to Get Started
1

How to efficiently query overlapping events?

2

Recurring event expansion strategy

3

Timezone handling complexity

Features
  • Free/busy lookup
  • Meeting suggestions
  • Room booking
  • Calendar sharing
Data Model

event

  • id
  • title
  • start_time
  • end_time
  • timezone
  • recurrence_rule
  • attendees