Returns true if this time slot overlaps with other.
true
other
bool overlaps(TimeSlot other) { return start.isBefore(other.end) && end.isAfter(other.start); }