[Feature] Push interview events to connected calendar integrations #19
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/peregrine#19
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
When a user saves an interview date on the Interviews kanban, a "📅 Add to Calendar" button should appear that pushes the event to their connected calendar integration.
Design decisions
calendar_event_idinstaging.db; pushing again updates the event rather than creating a duplicateImplementation scope
1.
scripts/db.pycalendar_event_id TEXTcolumn tojobstable (migration, nullable)set_calendar_event_id(db_path, job_id, event_id)helper2.
scripts/integrations/apple_calendar.pycreate_event(title, start_dt, end_dt, description) -> strusingcaldavlibraryupdate_event(event_id, title, start_dt, end_dt, description)for idempotent re-push3.
scripts/integrations/google_calendar.pycreate_event(title, start_dt, end_dt, description) -> strusinggoogle-api-python-client(service account credentials JSON path already in config)update_event(event_id, ...)for idempotent re-push4.
scripts/calendar_push.py(new)push_interview_event(db_path, job_id, config_dir) -> dict— detects connected calendar integration, loads its config, creates/updates the event, persistscalendar_event_idto db"{stage_label}: {job_title} @ {company}"{"ok": True, "provider": "apple_calendar", "event_id": "..."}or{"ok": False, "error": "..."}5.
app/pages/5_Interviews.pyinterview_dateis set, ANDcalendar_event_idis already setpaidtier6.
environment.ymlcaldavandgoogle-api-python-client(both are installed but not pinned)Out of scope (v1)
Acceptance criteria
calendar_event_idin dbenvironment.ymlupdatedcalendar_push.py(mock integration classes)