Add Google Calendar sync functionality #617
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds one-way synchronization from Obsidian Full Calendar to Google Calendar, allowing users to automatically sync their Obsidian calendar events to their Google Calendar.
Features
Technical Implementation
New Files
src/calendars/GoogleCalendar.ts- Google Calendar implementation extending EditableCalendarsrc/sync/GoogleCalendarSync.ts- Core sync service for Google Calendar API interactionssrc/sync/SyncScheduler.ts- Automatic periodic sync schedulerdocs/calendars/google-calendar-sync.md- User setup guideModified Files
src/main.ts- Plugin integration and lifecycle managementsrc/ui/components/CalendarSetting.tsx- UI for OAuth and sync controlssrc/ui/components/AddCalendarSource.tsx- Google Calendar source additionsrc/ui/settings.ts- Settings schema updatessrc/types/calendar_settings.ts- Type definitions for Google Calendarsrc/core/EventCache.ts- Event cache integrationDependencies
googleapis- Google Calendar API clientgoogle-auth-library- OAuth 2.0 authenticationTesting
The feature has been tested with:
Documentation
Setup guide available at
docs/calendars/google-calendar-sync.mdBreaking Changes
None - this is a purely additive feature.
Checklist