@nrdmnn/piece-caldav
v0.1.47
Published
CalDAV calendar management for Active Pieces - Create, manage and synchronize calendars and events via the CalDAV protocol
Maintainers
Readme
CalDAV Piece for Active Pieces
A complete CalDAV piece for Active Pieces that enables calendar and event management via the CalDAV protocol.
Features
Calendar Management
- ✅ List calendars
- ✅ Create calendar
- ⏳ Update calendar
- ⏳ Delete calendar
- ⏳ Get calendar details
Event Management
- ✅ Create event (with optional alarms)
- ✅ Get event
- ✅ List events
- ⏳ Update event
- ⏳ Delete event
- ⏳ Copy event
Reminders (VALARM)
- ✅ Add reminders when creating events
- ⏳ Add/remove reminders
- ⏳ List reminders
Planned
- Attendee management
- Recurrence rules (RRULE)
- Availability checking
- Triggers for events and alarms
Installation
The piece requires the following dependencies:
ical.js- iCalendar parsing/generationfast-xml-parser- XML parsing for CalDAVrrule- RRULE processingdayjs- Date/time processing
Usage
Authentication
- Create a new connection
- Enter your CalDAV server URL (e.g.,
https://caldav.example.com) - Enter username and password
- The connection will be automatically validated
Actions
List calendars
Retrieves all available calendars from the server.
Create calendar
Creates a new calendar with name, description, and optional color.
Create event
Creates a new event with:
- Title, description, location
- Start and end time
- Optional: Reminder (alarm)
List events
Retrieves all events from a calendar, optionally with date filter.
Get event
Retrieves a single event by UID.
Technical Details
CalDAV Protocol
The piece implements the main CalDAV methods:
PROPFIND- Query propertiesREPORT- CALDAV:calendar-query for eventsMKCOL- Create calendarsPUT- Create/update eventsGET- Retrieve eventsDELETE- Delete events/calendars
iCalendar Format
Events are stored in iCalendar format (.ics) and support:
- VEVENT components
- VALARM components (reminders)
- ATTENDEE (attendees)
- RRULE (recurrences)
Development
Structure
piece-caldav/
├── src/
│ ├── index.ts # Piece definition
│ └── lib/
│ ├── common/ # Common modules
│ │ ├── auth.ts # Authentication
│ │ ├── client.ts # CalDAV client
│ │ ├── ical-handler.ts # iCalendar parsing
│ │ ├── xml-parser.ts # XML parsing
│ │ ├── rrule-handler.ts # RRULE processing
│ │ ├── props.ts # Common properties
│ │ └── types.ts # TypeScript types
│ └── actions/ # Actions
│ ├── calendars/
│ └── events/License
See LICENSE file.
