Overview
skiff-ics provides utilities for parsing and generating ICS (iCalendar) files, enabling calendar event import/export functionality in Skiff Calendar.
Package: skiff-icsSource:
libs/skiff-ics/
Key Features
- Parse ICS files from external calendar applications
- Generate ICS files for calendar event sharing
- Support for recurring events (RRULE)
- Timezone handling and conversion
- Attendee management and RSVP status
- Conference link extraction
- Reminders and alarms
Parsing ICS Files
Located inlibs/skiff-ics/src/parse.ts
Basic Parsing
libs/skiff-ics/src/parse.ts:1
ParsedEvent Interface
libs/skiff-ics/src/parse.ts:38
Parsing with Attendees
libs/skiff-ics/src/parse.ts:96
Parsing Recurring Events
libs/skiff-ics/src/RecurrenceRule.ts:1
Error Handling
libs/skiff-ics/src/parse.ts:32
Generating ICS Files
Located inlibs/skiff-ics/src/generate.ts
Basic Generation
libs/skiff-ics/src/generate.ts:1
Event with Attendees
libs/skiff-ics/src/generate.ts:30
All-Day Events
libs/skiff-ics/src/generate.ts:38
Recurring Events
libs/skiff-ics/src/generate.ts:50
Conference Links
libs/skiff-ics/src/generate.ts:87
Recurrence Rules
Located inlibs/skiff-ics/src/RecurrenceRule.ts
Creating Recurrence Rules
libs/skiff-ics/src/RecurrenceRule.ts:1
Utilities
Located inlibs/skiff-ics/src/utils.ts
libs/skiff-ics/src/utils.ts:1
Calendar Method Types
libs/skiff-ics/src/types.ts:1
Complete Example: Import/Export Flow
Installation
This is a workspace package:Key Dependencies
- ical: ICS file parsing
- ical-generator: ICS file generation
- rrule: Recurrence rule handling
- dayjs: Date manipulation
- windows-iana: Timezone conversion
- zod: Schema validation
- skiff-graphql: GraphQL types
- skiff-utils: Shared utilities
Related Libraries
- skiff-graphql - GraphQL types for events
- skiff-utils - Date and validation utilities