LIBICAL -- an implementation of iCalendar protocols and data formats