fromICalString static method
Implementation
static ICalendar fromICalString(String icalString) {
final lines = icalString.split('\n');
List<Event>? events;
String? prodId;
List<String>? properties;
for (var i = 0; i < lines.length; i++) {
lines[i] = _removeNonPrintable(lines[i]);
final line = lines[i];
if (line.startsWith('BEGIN:VEVENT')) {
final eventLines = <String>[];
while (!lines[i].startsWith('END:VEVENT')) {
eventLines.add(lines[i]);
i++;
}
events ??= [];
events.add(Event.fromICalStrings(eventLines));
} else if (line.startsWith('BEGIN:VCALENDAR') ||
line.startsWith('END:VCALENDAR') ||
line.isEmpty) {
continue;
} else if (line.startsWith('PRODID:')) {
prodId = line.substring(7);
} else {
properties ??= [];
properties.add(line);
}
}
return ICalendar(
prodId: prodId,
events: events,
properties: properties,
);
}