Gurjit Chahal

Scheduling System Demo

Add an event to see how a simple scheduler might structure bookings and avoid conflicts. This demo is intentionally lightweight and runs purely client-side. Below is a breakdown on how a production level project would be architected and the tradeoffs involved in key decisions.

About the Scheduling System

  • Frontend focus: calendar interaction design, state transitions between week/month/year views, and validation UX for quick event creation.
  • Problem: Users need to schedule events with conflict detection and timezone handling.
  • Architecture: Client → API → Booking Service → Postgres + Redis
  • Key Decisions:
    • Used Postgres row-level locking to prevent double bookings
    • Stored all timestamps in UTC
    • Cached availability queries in Redis
  • Tradeoffs:
    • Strong consistency vs latency
    • Cache invalidation complexity
  • Scaling:
    • Read replicas for availability queries
    • Horizontal scaling of booking service

Create an Event

Date
May 2026
SunMonTueWedThuFriSat

Selected: 2026-05-27

Info

This demo uses local state, but a real scheduling system would store events in a database, validate availability, and enforce business rules (e.g., minimum lead time, maximum advance booking period, time zone awareness).

This week

Monday, May 25
5/25/2026
2026

No events yet.

Tuesday, May 26
5/26/2026
2026

No events yet.

Wednesday, May 27
5/27/2026
2026

No events yet.

Thursday, May 28
5/28/2026
2026

No events yet.

Friday, May 29
5/29/2026
2026

No events yet.

Saturday, May 30
5/30/2026
2026

No events yet.

Sunday, May 31
5/31/2026
2026

No events yet.

Tip: Open the browser console and type events to inspect the in-memory schedule list.