FreeBusy.fromICalString constructor

FreeBusy.fromICalString(
  1. String icalString
)

Implementation

factory FreeBusy.fromICalString(String icalString) {
  final lines = icalString.split('\n');
  DateTime? start;
  DateTime? end;
  List<TimeRange>? busy;
  for (final line in lines) {
    if (line.startsWith('DTSTART:')) {
      start = DateTime.parse(line.substring(8));
    } else if (line.startsWith('DTEND:')) {
      end = DateTime.parse(line.substring(6));
    } else if (line.startsWith('FREEBUSY:')) {
      final parts = line.substring(10).split('/');
      busy = parts.map((part) => TimeRange.fromICalString(part)).toList();
    }
  }
  if (start == null || end == null || busy == null) {
    throw FormatException('Invalid iCalendar string: $icalString');
  }
  return FreeBusy(start: start, end: end, busy: busy);
}