DESIGN QUESTION BANK 2 min read Library →

Design a calendar Application (similar like Google Calendar)

Scheduling and resource allocation interview practice prompt.

Additional prompt details

-Ability to create, update, delete an Event - An event would typically consist of {start, end, location, Owner, user-list, title}. - Events can either be like meetings(with a dedicated location and appropriate guest-list) or as well be like holidays, birthdays, reminders etc. - An event once created, can be either accepted or rejected by the constituent users - if neither it should be in neutral state.

  • Get Calendar for a user Ui
  • Get Event details.
  • For a given set of users[U1, U2,….Un] identity a common free slot of time.

Functional requirements (FR)

  • Create, view, change, and cancel bookings or allocations for the resources described in the prompt.
  • Search availability by the relevant time, location, capacity, or participant constraints.
  • Notify affected users when a booking, assignment, or availability state changes.
  • Provide history and current status for users, operators, and resource owners.

Non-functional requirements (NFR)

  • Prevent double booking and define how conflicting requests are serialized or rejected.
  • Keep availability queries responsive during peak demand and define freshness expectations.
  • Handle retries, time-zone boundaries, cancellation races, and partial notification failures safely.
  • Protect personal and location data and make allocation decisions observable and auditable.

Principal-level discussion

  • Define the scale, success measures, and operational ownership before committing to an architecture.
  • Compare at least two viable approaches and explain the trade-offs, migration path, and failure behavior.
  • Identify the riskiest assumptions and how you would validate them with data or a staged rollout.

results matching ""

    No results matching ""