What to work through
Work through a calendar as a spoken system design interview. Start by clarifying the scope, sketch a working design and explain the trade-offs behind your choices.
- Show a day, a week and a month, and move between them
- Create, edit and delete an event, by a form or by dragging on the grid
- Repeat an event, and edit one occurrence, it and the ones after it, or the whole series
- Invite people to an event and show their replies
- Show several calendars at once, each in its own colour, each shown or hidden
Constraints to discuss
- A busy day of 50 events draws without lag, and a drag runs at 60 frames a second
- A click or a drag answers within 200 milliseconds
- Every event shows at the right time in the viewer's time zone, across daylight saving changes
- The grid works by keyboard and with a screen reader
Need a starting point?
Watch for these common gaps as you prepare:
- Storing every occurrence of a repeating event, so an endless series never fits
- Storing a repeating event as fixed UTC times, so it shifts an hour across daylight saving
- Editing occurrences one by one when the person meant the whole series or this and following
- Taking an event's date from its UTC string, which can be a different day for the viewer
- Drawing every event of a heavy month in full
Why this question is in the collection
These sources connect the problem to company interview reports or preparation guides. They do not guarantee what a company will ask you.
- Uber: A frontend SDE-2 tip from January 2025 says to prepare a Google Calendar system design; the same page lists it as an example shared for an SDE-2 loop.
- Uber: An SDE-2 full-stack candidate's write-up names a Google Calendar design round. The page would not open, so this rests on the search snippet the research record holds.
- Uber: Listed by PracHub on 2026-05-04 as a frontend engineer technical screen question, an online calendar service like Google Calendar, with no candidate narrative.
- Gusto: A staff engineer reports this variant at an onsite, about June 2026: a calendar of each employee's shifts per day, with the cooks and servers each slot needs, and the advice to settle the data model before the UI.
- Snowflake: Listed by PracHub on 2026-08-03 as a frontend engineer technical screen question, calendar state for recurring events, with no candidate narrative.