callumalpass_tasknotes/docs/calendar-setup.md
callumalpass 5708d3dd9d docs: consolidate and streamline documentation
- Add v3 to v4 migration guide with Bases setup instructions
- Expand core-concepts.md with YAML structure, property types, and methodology examples
- Streamline index.md to be a concise landing page with quickstart
- Remove developer-focused timezone docs (TIMEZONE_HANDLING_*.md)
- Update releases.md to show v4.x as current
- Fix broken relative links in features.md
- Reduce repetition across docs by centralizing Bases info in core-concepts.md
- Consolidate task-management.md recurring tasks and reminders sections
- Simplify features/integrations.md and features/calendar-integration.md
- Reduce task-defaults.md Default Reminders section from 227 to 24 lines
- Add v4/Bases troubleshooting and OAuth calendar troubleshooting sections
- Update troubleshooting.md with current settings paths and GitHub link
- Update calendar-setup.md with Azure manifest redirect URI instructions
2025-12-07 13:03:21 +11:00

4.2 KiB

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

  1. 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)
  2. 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

  1. 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)
  2. Configure Redirect URI via Manifest

    • In your app registration, go to "Manifest"
    • Find the replyUrlsWithType array and add:
      {
        "url": "http://127.0.0.1",
        "type": "Web"
      }
      
    • Save the manifest
    • Note: Azure Portal UI may not allow http://127.0.0.1 directly, but the manifest editor does. Azure ignores the port for loopback addresses, so any port will work.
  3. Configure API Permissions

    • In your app registration, go to "API permissions"
    • Add permissions:
      • Calendars.Read
      • Calendars.ReadWrite
      • offline_access
    • Grant admin consent if required
  4. 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)
  5. 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.1 is configured via the manifest editor (not localhost)
  • For Google: Check redirect URI http://localhost:8080 is 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