Commit graph

8 commits

Author SHA1 Message Date
callumalpass
735706ead4 docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
callumalpass
8cc2a85f36 Fix broken docs image links for CI docs:check 2026-02-15 15:25:36 +11:00
callumalpass
291184cd56 docs: restructure task management guides and refresh screenshots
Split recurring tasks and reminders content into dedicated pages,
condense existing guides for clarity, and update all documentation
screenshots. Refactor e2e screenshot tests with shared openView()
helper and retry support. Refine MdbaseSpec field types (enum,
datetime, link) and replace MCPService @ts-expect-error workarounds
with bound tool pattern.
2026-02-15 12:10:28 +11:00
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
callumalpass
be9358f9a5 docs: add video guide for Google Calendar OAuth setup
Embedded tutorial video in calendar setup documentation to help users
configure Google Calendar OAuth credentials.

Thanks to @antoneheyward for the tutorial.
2025-11-30 20:17:08 +11:00
callumalpass
b6d72896c5 chore: temporarily disable quick OAuth setup for beta release
- Comment out license card and mode toggle UI in integrations tab
- Force advanced setup mode to always show credential inputs
- Add prominent setup guide link to calendar integration section
- Update calendar-setup.md to hide quick setup documentation

The quick OAuth setup flow is being temporarily disabled for the
beta release. Users will only see the advanced setup option requiring
their own OAuth credentials. All changes are marked with
"TEMPORARILY DISABLED FOR BETA RELEASE" comments for easy restoration.
2025-10-29 23:07:53 +11:00
callumalpass
87ba50d6f3 chore: prepare repository for BRAT beta releases
- Update release workflow to auto-set version from git tag
- Fix plugin name in workflow (chronosync → tasknotes)
- Update test workflow to include OAuth env vars for builds
- Add .env to .gitignore for OAuth credentials
- Clean up old planning documents and GIF files
- Update calendar setup documentation
- Enhance license validation with better logging and content-type
2025-10-29 22:54:43 +11:00
callumalpass
f007bf1a7c
feat: add OAuth 2.0 calendar integration for Google and Microsoft Calendar (#997)
Adds comprehensive OAuth 2.0 integration for Google Calendar and Microsoft Calendar
with two authentication modes: Quick Setup (Device Flow) and Advanced Setup (standard
OAuth flow with user credentials).

## Features

**Calendar Providers**
- Google Calendar and Microsoft Calendar integration with full CRUD operations
- Unified CalendarProvider abstraction for extensibility
- Events display in Bases calendar view with drag-and-drop scheduling

**Authentication**
- Quick Setup: OAuth 2.0 Device Flow (RFC 8628) - requires license key, no OAuth app configuration needed
- Advanced Setup: Standard OAuth flow with PKCE - use your own Google Cloud/Azure credentials

**Sync & Performance**
- Incremental sync using sync tokens (Google) and delta links (Microsoft)
- Exponential backoff retry logic for rate limiting
- Token refresh with mutex pattern to prevent race conditions
- Automatic refresh every 15 minutes

## Technical Implementation

**New Services**
- OAuthService: OAuth flows, token management, and revocation
- GoogleCalendarService: Google Calendar API client
- MicrosoftCalendarService: Microsoft Graph API client
- LicenseService: Lemon Squeezy license validation
- CalendarProvider: Abstract base class for calendar integrations

**Error Handling**
- Custom error types for calendar operations
- Validation helpers for IDs and required fields
- Graceful handling of expired tokens and API errors

**Security**
- Device Flow uses only public client IDs (no secrets bundled)
- PKCE support for standard OAuth flow
- Tokens stored securely in Obsidian's data folder
- Token revocation on disconnect

## Testing

- Comprehensive test coverage: 1,423 tests passing
- Tests cover CRUD operations, error handling, rate limiting, and timezone handling
- Manually tested with real Google and Microsoft accounts

## Documentation

- Setup instructions in docs/calendar-setup.md
- Users configure via Settings → Integrations → Calendar
2025-10-26 16:40:35 +11:00