A fully functional Google Calendar clone built with React, featuring the same UI/UX design and core features as the original.
- Multiple View Modes: Day, Week, and Month views
- Event Management: Create, edit, and delete events
- Event Styling: Customizable event colors
- Persistent Storage: Events are saved to localStorage
- Responsive Design: Matches Google Calendar's exact UI/UX
- Date Navigation: Easy navigation between dates with Today button
- Calendar Organization: Multiple calendar categories (Calendar, Personal, Work)
- React 18 - UI framework
- Vite - Build tool and dev server
- Modern JavaScript - ES6+ features
- Node.js (v16 or higher)
- npm or yarn
- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to the URL shown in the terminal (usually
http://localhost:5173)
npm run buildThe built files will be in the dist directory.
npm run previewSBCracks_26/
├── src/
│ ├── components/
│ │ ├── Header.jsx # Top navigation bar
│ │ ├── Sidebar.jsx # Left sidebar with views and calendars
│ │ ├── MonthView.jsx # Month calendar view
│ │ ├── WeekView.jsx # Week calendar view
│ │ ├── DayView.jsx # Day calendar view
│ │ ├── EventModal.jsx # Event creation/editing modal
│ │ └── ColorPicker.jsx # Color picker component
│ ├── hooks/
│ │ └── useCalendar.js # Custom hook for calendar state management
│ ├── utils/
│ │ └── dateUtils.js # Date formatting utilities
│ ├── App.jsx # Main app component
│ ├── main.jsx # React entry point
│ └── styles.css # All styling matching Google Calendar design
├── index.html # HTML template
├── package.json # Dependencies and scripts
├── vite.config.js # Vite configuration
└── README.md # This file
- Create an Event: Click the "Create" button in the sidebar or click on any day/time slot
- Edit an Event: Click on any existing event
- Delete an Event: Open an event and click the "Delete" button
- Switch Views: Use the Day/Week/Month buttons in the header or sidebar
- Navigate Dates: Use the arrow buttons or click "Today" to jump to the current date
Works in all modern browsers that support:
- ES6 JavaScript features
- CSS Grid and Flexbox
- LocalStorage API
Enjoy your calendar!