Skip to main content

Nextcloud — Calendar

CalDAV-backed access to the user's calendars.

Integration IDnextcloud-calendar
AuthNC session via connector
Required scopeCALENDAR, DAV
Sourceserver/integrations/nextcloudCalendarTools.js

Tools

ToolPurpose
nextcloud_calendar_listList the user's calendars.
nextcloud_calendar_searchSearch events by date range / keyword.
nextcloud_calendar_get_eventFetch one event by URI.
nextcloud_calendar_create_eventCreate a new event.
nextcloud_calendar_update_eventUpdate title / time / attendees / body.
nextcloud_calendar_delete_eventDelete.
nextcloud_calendar_list_attendeesWho's invited and their RSVP status.
nextcloud_calendar_respondAccept / decline / tentative on an invite.

Endpoints (CalDAV)

PROPFIND /remote.php/dav/calendars/{uid}/
REPORT /remote.php/dav/calendars/{uid}/{calendar}/
GET /remote.php/dav/calendars/{uid}/{calendar}/{event}.ics
PUT /remote.php/dav/calendars/{uid}/{calendar}/{event}.ics
DELETE /remote.php/dav/calendars/{uid}/{calendar}/{event}.ics

Recurring events

Recurring events are returned as the master event plus a list of overrides (RECURRENCE-ID). Most tools accept either; the agent typically operates on the master.

Time zones

Events are returned with their original TZID. The agent renders them in the user's preferred timezone (set in NC, mirrored from auth/user).

Privacy

Event bodies (the description / notes field) flow through the Privacy Shield. Strict mode also redacts attendee names and addresses.

Common errors

ErrorCauseFix
403 Forbidden on shared calendarUser lacks write permissionOwner shares with edit rights.
409 Conflict on updateStale ETag (someone else edited concurrently)Re-fetch and retry.
Invalid TZIDBad timezoneUse IANA names (Europe/Amsterdam, not CET).