RemindMe is a chat-based calendar assistant that lets you manage Google Calendar events using natural language. Simply chat with your calendar assistant to create, list, or cancel events without dealing with complex forms or interfaces.
- Natural Language Interface: Create events by chatting naturally
- AI-Powered: Uses OpenAI GPT to understand and extract event details
- Google Calendar Integration: Seamless sync with your Google Calendar
- Smart Confirmation: AI asks follow-up questions and confirms details before creating events
- Event Management: List and cancel events through conversation
- Modern UI: Beautiful chat interface with real-time responses
- Node.js 18+
- Google Cloud Platform account
- OpenAI API key
git clone <your-repo-url>
cd remindme-appnpm installCreate a .env.local file in the root directory:
# Google OAuth Configuration
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
# OpenAI API Key
OPENAI_API_KEY=your_openai_api_key_here
# NextAuth Configuration
NEXTAUTH_SECRET=your_nextauth_secret_here
NEXTAUTH_URL=http://localhost:3000- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google Calendar API:
- Go to "APIs & Services" β "Library"
- Search for "Google Calendar API" and enable it
- Create OAuth 2.0 credentials:
- Go to "APIs & Services" β "Credentials"
- Click "Create Credentials" β "OAuth 2.0 Client IDs"
- Set Application Type to "Web application"
- Add Authorized redirect URI:
http://localhost:3000/api/auth/callback/google - Copy the Client ID and Client Secret to your
.env.local
- Go to OpenAI Platform
- Create a new API key
- Copy the key to your
.env.local
npm run devOpen http://localhost:3000 in your browser.
- Click "Sign in with Google"
- Grant Calendar permissions when prompted
- Start creating events with natural language!
"soccer practice at 9:30 AM for 3 hrs on Monday"
"Meeting with John tomorrow at 3pm"
"Workout every Tuesday at 6am for 1 hour"
"Coding session on Friday at 2:30 PM for 2 hours"
"list soccer events"
"show my meetings"
"what's on my calendar"
"upcoming events"
"cancel soccer practice"
"delete the meeting with John"
"remove my workout"
- Frontend: Next.js 15 with App Router
- Authentication: NextAuth.js with Google OAuth
- AI Processing: OpenAI GPT-3.5/4 for natural language understanding
- Calendar API: Google Calendar API for event management
- Styling: Custom CSS with modern chat interface
POST /api/create-event- Main endpoint for event creation and managementGET /api/auth/[...nextauth]- NextAuth.js authentication routesGET /api/test-env- Environment variable testingGET /api/test-calendar- Google Calendar API testing
remindme-app/
βββ app/
β βββ api/
β β βββ auth/ # NextAuth.js configuration
β β βββ create-event/ # Main event management API
β β βββ test-*/ # Testing endpoints
β βββ globals.css # Global styles
β βββ layout.js # Root layout
β βββ page.js # Main chat interface
βββ public/ # Static assets
βββ package.json
- Natural Language Processing: Uses OpenAI to extract event details from user messages
- Multi-turn Conversations: Maintains context for follow-up questions and confirmations
- Event Validation: Validates dates, times, and durations before creating events
- Error Handling: Comprehensive error handling with user-friendly messages
- Safety Features: Confirmation dialogs prevent accidental deletions
400 Error - Event Creation Failed
- Check that all environment variables are set correctly
- Verify Google Calendar API is enabled
- Ensure you're signed in with Google
- Check server console for detailed error logs
Authentication Issues
- Verify OAuth redirect URI matches exactly
- Check that Google Calendar API is enabled
- Ensure proper scopes are configured
Environment Variables Not Loading
- Restart the development server after adding
.env.local - Check that variable names match exactly
- Verify no extra spaces or quotes in
.env.local
GET /api/test-env- Check environment variablesGET /api/test-calendar- Test Google Calendar API accessPOST /api/simple-test- Test basic event creation
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
If you encounter any issues or have questions, please:
- Check the troubleshooting section above
- Look at the server console logs for detailed error information
- Open an issue on GitHub with detailed steps to reproduce
RemindMe: Your calendar, your way, through conversation! ποΈπ¬