My-Weekly-ToDo-List/.planning/phases/03-calendar-integration/03-01-PLAN.md
mARTin 4008b67a7a docs(03): revise phase plans to address checker feedback
- Fixed requirement coverage for CAL-03 (view calendar events in weekly view)
- Reduced tasks in Plan 01 from 4 to 2 to improve scoping
- Added new Plan 03 for calendar event display functionality
- Updated must_haves to reflect new task structure
2026-01-25 13:05:19 +01:00

112 lines
4.2 KiB
Markdown

---
phase: 03-calendar-integration
plan: 01
type: execute
wave: 1
depends_on: []
files_modified: [src/lib/google-calendar.ts, src/lib/apple-calendar.ts, src/app/api/calendar/google/oauth/route.ts, src/app/api/calendar/apple/oauth/route.ts]
autonomous: true
must_haves:
truths:
- "User can connect their Google Calendar account"
- "User can connect their Apple Calendar account"
- "Connected calendars appear in user's calendar settings"
artifacts:
- path: "src/lib/google-calendar.ts"
provides: "Google Calendar OAuth flow and API wrapper"
min_lines: 20
- path: "src/lib/apple-calendar.ts"
provides: "Apple Calendar OAuth flow and API wrapper"
min_lines: 20
- path: "src/app/api/calendar/google/oauth/route.ts"
provides: "Google OAuth callback endpoint"
exports: ["GET"]
- path: "src/app/api/calendar/apple/oauth/route.ts"
provides: "Apple OAuth callback endpoint"
exports: ["GET"]
key_links:
- from: "src/app/api/calendar/google/oauth/route.ts"
to: "src/lib/google-calendar.ts"
via: "import and use"
pattern: "import.*google-calendar"
- from: "src/app/api/calendar/apple/oauth/route.ts"
to: "src/lib/apple-calendar.ts"
via: "import and use"
pattern: "import.*apple-calendar"
---
<objective>
Implement the calendar integration system allowing users to connect Google and Apple calendar accounts with OAuth.
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.
</objective>
<execution_context>
@~/.config/opencode/get-shit-done/workflows/execute-plan.md
@~/.config/opencode/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/REQUIREMENTS.md
# Relevant 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
</context>
<tasks>
<task type="auto">
<name>Implement Google Calendar OAuth Wrapper</name>
<files>src/lib/google-calendar.ts</files>
<action>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 period
Reference the authentication setup from Phase 1 and the API patterns used in Phase 2.</action>
<verify>npm test passes and the module exports required functions without error</verify>
<done>Module exports initializeOAuth, getUserCalendars, and getUpcomingEvents functions</done>
</task>
<task type="auto">
<name>Implement Apple Calendar OAuth Wrapper</name>
<files>src/lib/apple-calendar.ts</files>
<action>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 period
Reference the authentication setup from Phase 1 and the API patterns used in Phase 2.</action>
<verify>npm test passes and the module exports required functions without error</verify>
<done>Module exports initializeOAuth, getUserCalendars, and getUpcomingEvents functions</done>
</task>
</tasks>
<verification>
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
</verification>
<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>
<output>
After completion, create `.planning/phases/03-calendar-integration/03-01-SUMMARY.md`
</output>