A full-stack application that enables users to create and schedule Google Calendar events with Google Meet integration. Built with React, Express.js, and the Google Calendar API.
- 🗓️ Create calendar events with detailed information
- 🤝 Automatically generate Google Meet links for events
- 👥 Add multiple attendees with email notifications
- 🌍 Support for multiple timezones
- 🔄 Real-time form validation
- 📱 Responsive design with Tailwind CSS
- 🔐 Secure OAuth2 authentication with Google
- React.js
- Tailwind CSS
- Lucide React (for icons)
- ShadcnUI components
- Node.js
- Express.js
- Google Calendar API
- OAuth2 authentication
Before you begin, ensure you have the following installed:
- Node.js (v14.0.0 or higher)
- npm or yarn
- Google Cloud Console account with Calendar API enabled
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Calendar API
- Configure the OAuth consent screen
- Create OAuth 2.0 credentials (Web application)
- Add authorized redirect URIs:
http://localhost:8000/auth/redirect
http://localhost:5173
(for Vite development server)
- Download the credentials JSON file
- Clone the repository:
git clone https://github.com/emmanuelist/google-calendar-scheduler.git
cd google-calendar-scheduler
- Install backend dependencies:
cd server
npm install
- Create a
.env
file in the server directory:
PORT=8000
- Place your Google credentials:
- Rename your downloaded credentials file to
credentials.json
- Place it in the server root directory
- Navigate to the frontend directory:
cd frontend
- Install frontend dependencies:
npm install
- Install required shadcn/ui components:
npx shadcn-ui@latest add alert
- Start the backend server:
cd server
npm start
- In a new terminal, start the frontend development server:
cd frontend
npm run dev
- Access the application at
http://localhost:5173
- Open the application in your browser
- Click the authentication button to connect with Google Calendar
- Fill in the event details:
- Event title
- Location
- Description
- Start date and time
- End date and time
- Timezone
- Attendee email addresses
- Submit the form to create the event
- A Google Meet link will be automatically generated and included in the event
GET /auth
- Initiates Google OAuth2 authenticationGET /auth/redirect
- OAuth2 callback URLGET /auth/status
- Check authentication status
GET /create-event
- Create a new calendar event- Query Parameters:
summary
- Event titlelocation
- Event locationdescription
- Event descriptionstartDateTime
- Start time (ISO format)endDateTime
- End time (ISO format)timeZone
- Timezone stringattendees
- JSON string of email addresses
- Query Parameters:
- OAuth2 authentication with refresh token support
- Automatic token refresh handling
- Secure storage of credentials
- CORS enabled for development
- Input validation on both frontend and backend
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Calendar API documentation
- Tailwind CSS team
- Shadcn UI component library
- Lucide React icons
For support, please open an issue in the repository or contact the maintainers.
- Add recurring event support
- Implement event modification
- Add calendar view
- Support for multiple calendar selection
- Enhanced notification options
- Calendar availability checking