A hands-free calendar application that lets you manage your schedule using hand gestures detected through your webcam. Built with a retro pixel art aesthetic.
- Hand Gesture Control - Navigate and interact with the calendar using webcam-based hand tracking
- Voice Input - Create events by speaking (Turkish speech recognition)
- Google Calendar Sync - Optionally connect and sync with your Google Calendar
- Daily & Weekly Views - Switch between views with a peace sign gesture
- Pixel Art UI - Retro 8-bit design with animated pixel characters
| Gesture | Action |
|---|---|
| Open Palm | Move cursor |
| Fist | Select time slot / Save event |
| Swipe Left | Next day |
| Swipe Right | Previous day |
| Peace Sign | Toggle daily/weekly view |
| Thumbs Down | Delete event |
- React 19 + TypeScript
- Vite - Build tool & dev server
- Tailwind CSS - Styling with custom pixel art theme
- MediaPipe Hands - Real-time hand tracking & gesture recognition
- Zustand - State management
- Google Calendar API - Cloud calendar integration
- Web Speech API - Voice input
- Node.js 18+
- A webcam (for gesture control)
- A modern browser (Chrome/Edge recommended)
# Clone the repository
git clone https://github.com/tugcegun/Calendar-app.git
cd Calendar-app
# Install dependencies
npm install
# Start the development server
npm run devThe app will be available at http://localhost:5173
- Create a project in Google Cloud Console
- Enable the Google Calendar API
- Create OAuth 2.0 credentials
- Create a
.envfile in the project root:
VITE_GOOGLE_CLIENT_ID=your_client_id_here| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
src/
├── components/ # React UI components
├── hooks/ # Custom React hooks
├── services/ # Business logic & API services
├── utils/ # Utility functions
├── store/ # Zustand state management
├── types/ # TypeScript type definitions
├── App.tsx # Main application component
└── main.tsx # Entry point
This project is open source and available under the MIT License.