I'm not 100% sure this is a valid concern of a factory class. At the very least it's a Law of Demeter violation. Perhaps there should be different types of `CalendarEntry` (open-ended vs. time-boxed) that can be iterated over by a Visitor or something to be processed appropriately.