Calendar Integration Setup¶
TaskNotes supports Google Calendar and Microsoft Calendar integration via OAuth 2.0.
Setup (Your Own OAuth Credentials)¶
To connect your calendars, you'll need to create OAuth applications with Google and/or Microsoft.
Google Calendar¶
Video by @antoneheyward
- Create OAuth App
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google Calendar API
-
Create OAuth 2.0 credentials (Desktop application type)
-
Configure Credentials
- Copy Client ID and Client Secret
- In TaskNotes Settings → Integrations → Calendar:
- Paste your Client ID in the Google Calendar card
- Paste your Client Secret in the Google Calendar card
- Click "Connect Google Calendar"
Microsoft Calendar¶
- Create Azure App Registration
- Go to Azure Portal
- Navigate to "App registrations" → "New registration"
- Name: Choose any name (e.g., "TaskNotes")
- Supported account types: Select appropriate option for your use case
-
Redirect URI: Leave blank for now (we'll add it via manifest)
-
Configure Redirect URI via Manifest
- In your app registration, go to "Manifest"
- Find the
replyUrlsWithTypearray and add:json { "url": "http://127.0.0.1", "type": "Web" } - Save the manifest
-
Note: Azure Portal UI may not allow
http://127.0.0.1directly, but the manifest editor does. Azure ignores the port for loopback addresses, so any port will work. -
Configure API Permissions
- In your app registration, go to "API permissions"
- Add permissions:
Calendars.ReadCalendars.ReadWriteoffline_access
-
Grant admin consent if required
-
Get Credentials
- In "Overview", copy the Application (client) ID
- In "Certificates & secrets", create a new client secret
-
Copy the secret value immediately (shown only once)
-
Configure TaskNotes
- In TaskNotes Settings → Integrations → Calendar:
- Paste your Client ID in the Microsoft Calendar card
- Paste your Client Secret in the Microsoft Calendar card
- Click "Connect Microsoft Calendar"
Security Notes¶
- Your OAuth credentials are stored locally in Obsidian's data folder
- Access tokens are stored securely and refreshed automatically
- Calendar data is synced directly between Obsidian and your calendar provider
- Disconnect at any time to revoke access
Troubleshooting¶
"Failed to connect"
- Verify Client ID and Secret are correct
- For Microsoft: Check redirect URI
http://127.0.0.1is configured via the manifest editor (notlocalhost) - For Google: Check redirect URI
http://localhost:8080is configured - Ensure required API permissions are granted
"Failed to fetch events"
- Disconnect and reconnect to refresh tokens
- Check calendar permissions in Google/Microsoft settings
Connection lost after Obsidian restart
- Tokens are persisted - you should not need to reconnect
- If you do, there may be a file permissions issue with your vault