OAuth Setup
TimeOtter needs OAuth credentials to access your Google Calendar. Follow these steps to set up authentication.
Step 1: Create a Google Cloud Project
- Visit the Google Cloud Console
- Click Select a project → New Project
- Name it (e.g., “TimeOtter”) and click Create
Step 2: Enable the Calendar API
- Go to APIs & Services → Library
- Search for “Google Calendar API”
- Click on it and press Enable
Step 3: Configure OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Select External and click Create
- Fill in the required fields:
- App name: TimeOtter
- User support email: Your email
- Developer contact: Your email
- Click Save and Continue
- On Scopes, click Add or Remove Scopes
- Add:
https://www.googleapis.com/auth/calendar.readonly - Click Save and Continue
- Add your email as a test user
- Click Save and Continue
Step 4: Create OAuth Credentials
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- Application type: Desktop app
- Name: TimeOtter
- Click Create
- Download the JSON file
Step 5: Save Credentials
Save the downloaded JSON file:
mv ~/Downloads/client_secret_*.json ~/.cal-credentials.jsonStep 6: Generate Token
Run TimeOtter once to generate the OAuth token:
timeotterThis will:
- Open your browser for authentication
- Ask you to authorize TimeOtter
- Save the token to
~/.cal-token.json
File Locations
| File | Default Path | Description |
|---|---|---|
| Credentials | ~/.cal-credentials.json | OAuth client credentials |
| Token | ~/.cal-token.json | Access/refresh token |
Both paths can be customized in your configuration.
Troubleshooting
”Access Denied” or “App Not Verified”
This is normal for development. Click Advanced → Go to TimeOtter (unsafe) to proceed.
Token Expired
Delete the token file and run TimeOtter again to re-authenticate:
rm ~/.cal-token.jsontimeotter