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.

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