XDate.fromICalString constructor
XDate.fromICalString(
- String icalString
Implementation
factory XDate.fromICalString(String icalString) {
final lines = icalString.split('\n');
String? dateStr;
for (var i = 0; i < lines.length; i++) {
final line = lines[i];
if (line.startsWith('EXDATE')) {
final dateAndTimeZoneStr = line.split(';').last.trim();
var timeZoneStr = dateAndTimeZoneStr.split(':').length > 1
? dateAndTimeZoneStr.split(':').first
: null;
timeZoneStr = timeZoneStr?.replaceAll('TZID=', '');
dateStr = dateAndTimeZoneStr.replaceAll(timeZoneStr ?? '', '').trim();
dateStr = dateStr.replaceAll('TZID=', '');
dateStr = dateStr.replaceAll(':', '');
break;
}
}
if (dateStr == null) {
throw FormatException('Invalid iCal string. DTSTART not found.');
}
final date = DateTime.parse(dateStr);
return XDate(date: date);
}