Google Calendar Omi Integration
Manage your Google Calendar through Omi chat - create events, view your schedule, and more.
List Events - View upcoming calendar events
Create Events - Schedule meetings and appointments with natural language
Update Events - Reschedule or modify existing events
Delete Events - Remove events from your calendar
List Calendars - See all your available calendars
1. Create Google Cloud Project & OAuth Credentials
Go to Google Cloud Console
Create a new project or select an existing one
Enable the Google Calendar API :
Go to "APIs & Services" > "Library"
Search for "Google Calendar API"
Click "Enable"
Create OAuth 2.0 credentials:
Go to "APIs & Services" > "Credentials"
Click "Create Credentials" > "OAuth client ID"
Application type: Web application
Name: "Omi Google Calendar"
Authorized redirect URIs: Add your callback URL (see below)
Copy the Client ID and Client Secret
Create a new project on Railway
Connect your GitHub repo or deploy from this folder
Add a Redis service to your project
Set environment variables:
GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=https://your-app.up.railway.app/auth/google/callback
Deploy! Railway will automatically:
Install dependencies from requirements.txt
Start the server using railway.toml config
Provide PORT and REDIS_URL environment variables
3. Update Google OAuth Redirect URI
After deployment, update your Google OAuth credentials with the actual Railway URL:
https://your-app.up.railway.app/auth/google/callback
When creating/updating the Omi app, use these URLs:
Field
Value
Setup URL
https://your-app.up.railway.app/?uid={{uid}}
Setup Completed URL
https://your-app.up.railway.app/setup/google?uid={{uid}}
Chat Tools Manifest URL
https://your-app.up.railway.app/.well-known/omi-tools.json
Endpoint
Description
/tools/list_events
List upcoming calendar events
/tools/create_event
Create a new event
/tools/get_event
Get event details
/tools/update_event
Update an event
/tools/delete_event
Delete an event
/tools/list_calendars
List all calendars
Endpoint
Description
/
Home page / setup UI
/auth/google?uid=<uid>
Start OAuth flow
/auth/google/callback
OAuth callback
/setup/google?uid=<uid>
Check setup status
/disconnect?uid=<uid>
Disconnect account
/health
Health check
/.well-known/omi-tools.json
Chat tools manifest
Copy .env.example to .env and fill in your credentials
Set GOOGLE_REDIRECT_URI=http://localhost:8080/auth/google/callback
Add this to your Google OAuth redirect URIs
Install dependencies: pip install -r requirements.txt
Run: python main.py
Variable
Description
Required
GOOGLE_CLIENT_ID
Google OAuth Client ID
Yes
GOOGLE_CLIENT_SECRET
Google OAuth Client Secret
Yes
GOOGLE_REDIRECT_URI
OAuth callback URL
Yes
PORT
Server port (default: 8080)
No
REDIS_URL
Redis connection URL
No (uses file storage if not set)
"What's on my calendar today?"
"Show me my schedule for next week"
"Create a meeting with John tomorrow at 2pm"
"Schedule a dentist appointment on Friday at 10am"
"Delete my 3pm meeting"
"Reschedule my team sync to 4pm"