### Decode iCalendar String to VEvent Objects Source: https://github.com/chan614/icalswift/blob/master/README.md Parses an iCalendar string containing VEVENT components into an array of VEvent objects. The parser handles basic iCalendar syntax for events. ```swift let sampleICS = """ BEGIN:VEVENT DTSTAMP:20220305T092707 UID:example@gmail.com ... END:VALAM END:VEVENT """ let parser = ICalParser() let vEvents = parser.parseEvent(ics: sampleICS) vEvents.forEach { vEvent in print(vEvent.vEncoded) } ``` -------------------------------- ### Encode VEvent to iCalendar String Source: https://github.com/chan614/icalswift/blob/master/README.md Encodes a VEvent object, including alarms and custom properties, into its iCalendar string representation. Ensure all required properties are set before encoding. ```swift let alarm = ICalAlarm.audioProp( trigger: Date(), duration: .init(totalSeconds: 3000), repetition: nil, attach: nil) let event = ICalEvent( dtstamp: Date(), uid: "example@gmail.com", classification: nil, created: Date(), description: "example", dtstart: .init(date: Date()), lastModified: Date(), location: "1", organizer: nil, priority: 1, seq: nil, status: "CONFIRMED", summary: "Spinning", transp: "SPAQUE", url: nil, dtend: nil, duration: nil, recurrenceID: Date(), rrule: nil, rdates: [Date(), Date(), Date()], exrule: nil, exdates: [Date(), Date()], alarms: [alarm], timeZone: nil, extendProperties: ["X-EXTEND-PROPERTY": "TEST"]) let vEncoded = event.vEncoded print(vEncoded) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.