- 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
112 lines
4.2 KiB
Markdown
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> |