TODO: recurring event with duration