This project is a simplified scheduling and booking platform inspired by Cal.com. It allows users to create event types, define availability, and enable others to book time slots.
- Event type creation (title, duration, slug)
- Availability setup (days and time slots)
- Public booking page
- Time slot selection
- Booking with name and email
- Prevention of double booking
- View and cancel bookings
- Backend: FastAPI (Python)
- Frontend: React.js
- Database: PostgreSQL / SQLite
- Deployment: Render (Backend), Vercel (Frontend)
- id
- title
- description
- duration
- slug
- id
- event_id (FK)
- day_of_week
- start_time
- end_time
- id
- event_id (FK)
- name
- start_time
- end_time
Constraints:
- Unique (event_id, start_time) to prevent double booking
- POST /events
- GET /events
- POST /availability
- GET /slots
- POST /book
- GET /bookings
- DELETE /booking/{id}
pip install -r requirements.txt
uvicorn main:app --reloadnpm install
npm start- Single user (no authentication required)
- Fixed timezone handling
- Minimal UI due to time constraints
- Authentication system
- Email notifications
- Rescheduling feature
- Advanced timezone handling
- Better UI/UX