toICalString method
Implementation
String toICalString() {
final buffer = StringBuffer();
buffer.write('RRULE:FREQ=${frequency.name}');
if (weekStart != null) {
buffer.write(';WKST=${weekStart!.toICalString()}');
}
if (interval > 1) {
buffer.write(';INTERVAL=$interval');
}
if (count != null) {
buffer.write(';COUNT=$count');
}
if (until != null) {
buffer.write(
';UNTIL=${DateFormat('yyyyMMdd\'T\'HHmmss\'Z\'').format(until!.toUtc())}');
}
if (bySecond != null && bySecond!.isNotEmpty) {
buffer.write(';BYSECOND=${bySecond!.join(',')}');
}
if (byMinute != null && byMinute!.isNotEmpty) {
buffer.write(';BYMINUTE=${byMinute!.join(',')}');
}
if (byHour != null && byHour!.isNotEmpty) {
buffer.write(';BYHOUR=${byHour!.join(',')}');
}
if (byDay != null && byDay!.isNotEmpty) {
buffer.write(
';BYDAY=${byDay!.map((day) => day?.toICalString()).join(',')}');
}
if (byMonthDay != null && byMonthDay!.isNotEmpty) {
buffer.write(';BYMONTHDAY=${byMonthDay!.join(',')}');
}
if (byYearDay != null && byYearDay!.isNotEmpty) {
buffer.write(';BYYEARDAY=${byYearDay!.join(',')}');
}
if (byWeekNo != null && byWeekNo!.isNotEmpty) {
buffer.write(';BYWEEKNO=${byWeekNo!.join(',')}');
}
if (byMonth != null && byMonth!.isNotEmpty) {
buffer.write(';BYMONTH=${byMonth!.join(',')}');
}
if (bySetPosition != null && bySetPosition!.isNotEmpty) {
buffer.write(';BYSETPOS=${bySetPosition!.join(',')}');
}
return buffer.toString();
}