feat(calendar): add comprehensive Calendar app support via CalDAV protocol

- Add complete CalDAV client implementation following NextCloud patterns
- Implement 11 comprehensive calendar MCP tools:
  * nc_calendar_list_calendars - list available calendars
  * nc_calendar_create_event - full event creation with recurrence, reminders, attendees
  * nc_calendar_list_events - enhanced with advanced filtering capabilities
  * nc_calendar_get_event - detailed event information retrieval
  * nc_calendar_update_event - comprehensive event modification
  * nc_calendar_delete_event - event removal
  * nc_calendar_create_meeting - quick meeting creation with smart defaults
  * nc_calendar_get_upcoming_events - upcoming events in next N days
  * nc_calendar_find_availability - intelligent scheduling with conflict detection
  * nc_calendar_bulk_operations - batch update/delete/move operations
  * nc_calendar_manage_calendar - calendar creation and management

- Add CalDAV and iCalendar dependencies to support calendar operations
- Implement comprehensive integration tests (11 test cases covering all scenarios)
- Update documentation with complete calendar tools reference and usage examples

Resolves #74
This commit is contained in:
Neovasky
2025-07-27 00:25:31 -04:00
parent b8191c134a
commit 7291c930c4
9 changed files with 2394 additions and 1 deletions
+2
View File
@@ -11,6 +11,7 @@ import logging
from .notes import NotesClient
from .webdav import WebDAVClient
from .tables import TablesClient
from .calendar import CalendarClient
from ..controllers.notes_search import NotesSearchController
logger = logging.getLogger(__name__)
@@ -46,6 +47,7 @@ class NextcloudClient:
self.notes = NotesClient(self._client, username)
self.webdav = WebDAVClient(self._client, username)
self.tables = TablesClient(self._client, username)
self.calendar = CalendarClient(self._client, username)
# Initialize controllers
self._notes_search = NotesSearchController()