CalendarName: WOString {
	value = escapedCalendarName;
}

CalendarTimeZone: WOString {
	value = escapedCalendarTimeZone;
}

EventEndDate: WOString {
	value = event.endTime;
	formatter = dateFormatter;
}

EventEndTime: WOString {
	value = event.endTime;
	formatter = dateTimeFormatter;
}

EventEndTimeZone: WOString {
	value = event.endTime;
	formatter = timeZoneFormatter;
}

EventRepetition: WORepetition {
	list = events;
	item = event;
}

EventSequence: WOString {
	value = event.sequence;
}

EventStartDate: WOString {
	value = event.startTime;
	formatter = dateFormatter;
}

EventStartTime: WOString {
	value = event.startTime;
	formatter = dateTimeFormatter;
}

EventStartTimeZone: WOString {
	value = event.startTime;
	formatter = timeZoneFormatter;
}

EventStatus: WOString {
	value = escapedEventStatus;
}

EventStatusConditional: WOConditional {
	condition = event.status;
}

EventSummary: WOString {
	value = escapedEventSummary;
}

EventTimestamp: WOString {
	value = eventTimestamp;
	formatter = utcDateTimeFormatter;
}

EventUID: WOString {
	value = escapedEventUniqueId;
}

RecurringConditional: WOConditional {
	condition = event.repeatFrequency;
}
RepeatCount: WOString {
	value = event.repeatCount;
}
RepeatDayOfWeekConditional: WOConditional {
	condition = event.repeatDayOfWeek;
}
RepeatDayOfWeekString: WOString {
	value = eventRepeatDayOfWeekString;
}
RepeatDaysOfMonthConditional: WOConditional {
	condition = event.repeatDaysOfMonth;
}
RepeatDaysOfMonthString: WOString {
	value = eventRepeatDaysOfMonthString;
}
RepeatFrequency: WOString {
	value = eventRepeatFrequency;
}
RepeatMonth: WOString {
	value = eventRepeatMonth;
}

TimedConditional: WOConditional {
	condition = event.wholeDay;
	negate = true;
}

WholeDayConditional: WOConditional {
	condition = event.wholeDay;
}