A full-stack web application that enables users to log in with Google, authorize access to their Google Calendar, and receive phone call reminders for upcoming events via Twilio.
- Frontend: Next.js
- Backend: Node.js (Express)
- Authentication: Google OAuth 2.0
- APIs: Google Calendar API, Twilio Voice API
- Package Manager: pnpm
/project-root
├── frontend/ # Next.js application
├── backend/ # Node.js backend
├── README.md
- Node.js ≥ 18.x
- pnpm ≥ 8.x
- Google Cloud Project (OAuth + Calendar API enabled)
- Twilio account with verified number
git clone https://github.com/your-username/google-calendar-twilio.git
cd google-calendar-twiliopnpm install --filter ./frontend
pnpm install --filter ./backendNEXT_PUBLIC_GOOGLE_CLIENT_ID=
NEXT_PUBLIC_GOOGLE_CLIENT_SECRET=
NEXT_PUBLIC_GOOGLE_CALLBACK_URL=
NEXT_PUBLIC_SECRET_KEY=Create this file inside /frontend directory.
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
SESSION_SECRET=
PORT=
MONGO_URI=
JWT_SECRET=
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=Create this file inside /backend directory.
cd frontend
pnpm devVisit: http://localhost:3000
cd backend
pnpm devBackend runs at: http://localhost:5000
- Backend runs a scheduled check (default: every 5 minutes).
- If an event is found within the next 5 minutes, a phone call is triggered via Twilio.
Ensure the backend is running continuously to enable this feature.
- Make sure redirect URIs are consistent across
.envand Google Console. - Twilio trial accounts only allow calls to verified phone numbers.
- Use ngrok for local backend testing with external access if needed.
| Feature | Status |
|---|---|
| Google Login | ✅ Implemented |
| Calendar API Access | ✅ Implemented |
| Phone Input UI | ✅ Implemented |
| Cron-based Event Check | ✅ Implemented |
| Twilio Call Trigger | ✅ Implemented |
Name: Vijin Vinod