How sahniaditya007/google-calendar-clone works
This is a Next.js calendar application for browsing and managing events in month, week, and day views. The user workflow runs from the calendar page, through date-range event fetching and calendar rendering, or through the event modal for create, edit, and delete actions; API routes validate requests and persist events with Prisma. Local date and overlap utilities support presentation. The README documents responsive UI, color coding, time validation, overlap handling, and SQLite persistence. Source excerpts are partial, so unshown implementation links are omitted; future enhancements are not represented as existing features.
Main entry points: page.tsx Calendar page · events/route.ts Event collection API · [id]/route.ts Single event API · prisma.ts Prisma client
Components 11
Calendar interface
- Calendar page
app/page.tsx - Calendar views
components/Calendar.tsx - Event editor
components/EventModal.tsx
Event API
- Event collection API
app/api/events/route.ts - Single event API
app/api/events/[id]/route.ts - Database health API
app/api/health/route.ts
Persistence and domain
- Date utilities
lib/utils.ts - Event types
types/index.ts - Prisma client
lib/prisma.ts - SQLite event store
prisma/schema.prisma
Other components
- Calendar user
Connections 15
- Calendar user → Calendar page: uses
- Calendar page → Event collection API: fetches range
- Calendar page → Event collection API: creates event
- Calendar page → Single event API: updates event
- Calendar page → Single event API: deletes event
- Event collection API → Calendar page: returns events
- Single event API → Calendar page: returns result
- Calendar page → Calendar views: renders views
- Calendar page → Event editor: opens editor
- Calendar views → Date utilities: uses date logic
- Event editor → Date utilities: formats dates
- Event collection API → Prisma client: queries events
- Single event API → Prisma client: reads and mutates
- Database health API → Prisma client: checks connection
- Prisma client → SQLite event store: persists events