Initial version
remove custom iCal repo after upstream push
Class-based solution