PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/LinkedIn

Design a meeting scheduler API

Last updated: Mar 29, 2026

Quick Overview

This question evaluates object-oriented design, interval data-structure and algorithmic thinking, and concurrent programming competence by requiring an in-memory meeting scheduler API that handles booking insertion and earliest-availability queries.

  • medium
  • LinkedIn
  • Software Engineering Fundamentals
  • Software Engineer

Design a meeting scheduler API

Company: LinkedIn

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

## Meeting Scheduler (OOD + data structures) Design and implement an in-memory **meeting scheduler** that stores existing bookings and can answer availability queries. You must support two operations: 1. **`addBooking(start, duration)`** - Adds a booking covering the time interval **[start, start + duration)**. - Assume `start` is an integer timestamp (e.g., minutes) and `duration > 0`. 2. **`earliestStart(requestStart, duration)`** - Given a desired start time and meeting duration, return the **earliest time `t >= requestStart`** such that the interval **[t, t + duration)** does **not overlap** any existing booking. ### Overlap definition Two bookings overlap if their half-open intervals intersect. For example, [10, 20) and [20, 30) do **not** overlap. ### Follow-ups - Can you make `earliestStart` run in **O(N)** time (where N is the number of bookings) by changing how you store data? - Can you support faster than O(N) (e.g., **O(log N)** insert/query) with a better data structure? - Make the scheduler **thread-safe**. Assume the workload is **write-heavy**. State any assumptions you need (e.g., whether `addBooking` is guaranteed not to conflict, or whether conflicts should be rejected/merged).

Quick Answer: This question evaluates object-oriented design, interval data-structure and algorithmic thinking, and concurrent programming competence by requiring an in-memory meeting scheduler API that handles booking insertion and earliest-availability queries.

Related Interview Questions

  • Explain iOS ARC and avoid retain cycles - LinkedIn (medium)
LinkedIn logo
LinkedIn
Feb 12, 2026, 12:00 AM
Software Engineer
Onsite
Software Engineering Fundamentals
9
0
Loading...

Meeting Scheduler (OOD + data structures)

Design and implement an in-memory meeting scheduler that stores existing bookings and can answer availability queries.

You must support two operations:

  1. addBooking(start, duration)
    • Adds a booking covering the time interval [start, start + duration) .
    • Assume start is an integer timestamp (e.g., minutes) and duration > 0 .
  2. earliestStart(requestStart, duration)
    • Given a desired start time and meeting duration, return the earliest time t >= requestStart such that the interval [t, t + duration) does not overlap any existing booking.

Overlap definition

Two bookings overlap if their half-open intervals intersect. For example, [10, 20) and [20, 30) do not overlap.

Follow-ups

  • Can you make earliestStart run in O(N) time (where N is the number of bookings) by changing how you store data?
  • Can you support faster than O(N) (e.g., O(log N) insert/query) with a better data structure?
  • Make the scheduler thread-safe . Assume the workload is write-heavy .

State any assumptions you need (e.g., whether addBooking is guaranteed not to conflict, or whether conflicts should be rejected/merged).

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More LinkedIn•More Software Engineer•LinkedIn Software Engineer•LinkedIn Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.