fischer-agentkit/tests/unit/calendar
chiguyong ffb184acc7 feat(calendar): U8 iCal/ICS import and export
ICSProvider parses .ics files (icalendar library) and creates local
CalendarEvents, skipping duplicate UIDs. Export builds an iCalendar
from events in a date range, deduplicating recurring event
occurrences back to a single VEVENT with RRULE. REST endpoints:
POST /import-ics (multipart upload), GET /export-ics (download).

- src/agentkit/calendar/sync/__init__.py — sync subpackage init
- src/agentkit/calendar/sync/ics_provider.py — ICSProvider (import/export)
- src/agentkit/calendar/db.py — added get_event_by_external_id() for dedup
- src/agentkit/server/routes/calendar.py — import-ics and export-ics endpoints
- pyproject.toml — added icalendar>=5.0 dependency
- tests/unit/calendar/test_ics_provider.py — 8 tests
2026-06-23 22:20:07 +08:00
..
__init__.py feat(calendar): U1 backend data model, storage & RRULE expansion 2026-06-23 21:30:39 +08:00
test_db.py feat(calendar): U1 backend data model, storage & RRULE expansion 2026-06-23 21:30:39 +08:00
test_extraction.py feat(calendar): U4 post-processing extractor with keyword gating 2026-06-23 21:56:20 +08:00
test_ics_provider.py feat(calendar): U8 iCal/ICS import and export 2026-06-23 22:20:07 +08:00
test_recurrence.py feat(calendar): U1 backend data model, storage & RRULE expansion 2026-06-23 21:30:39 +08:00
test_reminders.py feat(calendar): U5 reminder subsystem with scheduler and multi-channel dispatch 2026-06-23 22:19:57 +08:00
test_routes.py feat(calendar): U2 backend service & REST API 2026-06-23 21:43:39 +08:00
test_scheduler.py feat(calendar): U5 reminder subsystem with scheduler and multi-channel dispatch 2026-06-23 22:19:57 +08:00
test_service.py feat(calendar): U2 backend service & REST API 2026-06-23 21:43:39 +08:00