At my first job we had an home made CalDAV server. One feature is the Free/Busy letting people ask for other people availability. Once you try to handle 'exceptions to recurring calendar events with a side of timezones and DST' you know why you should use existing libraries.