Phase 3: Calendar Integration - [2] plan(s) in [1] wave(s) - [2] parallel, [0] sequential - Ready for execution
5.8 KiB
| phase | plan | type | wave | depends_on | files_modified | autonomous | must_haves | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 03-calendar-integration | 01 | execute | 1 |
|
true |
|
Purpose: Enable users to view and synchronize their calendar events with the weekly task view. Output: Google Calendar and Apple Calendar OAuth flows with API wrappers for calendar event retrieval.
<execution_context> @~/.config/opencode/get-shit-done/workflows/execute-plan.md @~/.config/opencode/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/REQUIREMENTS.mdRelevant context from previous phases
@.planning/phases/01-setup-and-authentication/01-01-PLAN.md @.planning/phases/01-setup-and-authentication/01-02-PLAN.md @.planning/phases/02-task-management/02-01-PLAN.md
Implement Google Calendar OAuth Wrapper src/lib/google-calendar.ts Create a TypeScript module that implements Google Calendar OAuth flow using the Google API Client Library for JavaScript. Include functions for: - Initializing OAuth with client ID and scopes - Handling authorization redirects - Retrieving user calendar list - Fetching upcoming events for a specified time periodReference the authentication setup from Phase 1 and the API patterns used in Phase 2. npm test passes and the module exports required functions without error Module exports initializeOAuth, getUserCalendars, and getUpcomingEvents functions
Implement Apple Calendar OAuth Wrapper src/lib/apple-calendar.ts Create a TypeScript module that implements Apple Calendar OAuth flow using the Apple Developer API. Include functions for: - Initializing OAuth with client ID and scopes - Handling authorization redirects - Retrieving user calendar list - Fetching upcoming events for a specified time periodReference the authentication setup from Phase 1 and the API patterns used in Phase 2. npm test passes and the module exports required functions without error Module exports initializeOAuth, getUserCalendars, and getUpcomingEvents functions
Create Google Calendar OAuth Endpoint src/app/api/calendar/google/oauth/route.ts Create an API route that handles the Google OAuth callback. The route should: - Receive the authorization code from Google's OAuth redirect - Exchange the code for an access token using the Google API - Store the token in the database associated with the user - Redirect to the calendar settings page or dashboard with success messageFollow the API endpoint pattern established in Phase 2 and authentication flow from Phase 1. curl -X GET http://localhost:3000/api/calendar/google/oauth returns a successful redirect Route successfully handles Google OAuth and stores token in DB for user
Create Apple Calendar OAuth Endpoint src/app/api/calendar/apple/oauth/route.ts Create an API route that handles the Apple OAuth callback. The route should: - Receive the authorization code from Apple's OAuth redirect - Exchange the code for an access token using the Apple API - Store the token in the database associated with the user - Redirect to the calendar settings page or dashboard with success messageFollow the API endpoint pattern established in Phase 2 and authentication flow from Phase 1. curl -X GET http://localhost:3000/api/calendar/apple/oauth returns a successful redirect Route successfully handles Apple OAuth and stores token in DB for user
Verify that all components work in concert: 1. Google and Apple OAuth flows work without errors 2. OAuth tokens are stored in database 3. Calendar list can be fetched for connected accounts 4. Events from calendars are retrievable 5. UI for calendar settings shows connected accounts<success_criteria>
- Users can connect Google and Apple calendars via OAuth
- Connected calendars appear in the user's calendar settings
- Calendar events can be retrieved for display in the weekly view
- Tokens are securely stored for accessing calendar data </success_criteria>