address pr comments
rewrite without icalendar dependency