Read the RFC: https://www.rfc-editor.org/rfc/rfc4791
Not just once, you want to at least read it top to bottom 4 times.
More than that, you should probably also read the RFC's for WebDAV, WebDAV ACL and iCalendar.
Any answer you would get here would be a repetition of what's in there, and attempting to simplify this is rather futile, because you really need a full understanding of most of the specification.
To answer your questions specifically:
- Is entirely too vague to answer. The general steps would entail understanding the specification, and writing the server. Specifics are encouraged.
- You need something that can respond to HTTP requests. Whether that's a servlet or something else is less important. CalDAV is an extension to HTTP. XML reports are returned for meta-information, and iCalendar is the default format for the actual calendar data. For many http requests iCalendar is wrapped in xml bodies. These days servers are also starting to support xCal and jCal. The latter two are optional, you must have iCalendar support.
- Usually, they will poll at a client-defined interval. There are pub-sub mechanisms, but currently there is no standard for them, and there's various implementations out there. Discussions have started to come up with a standard transport for this, but this may take some time to complete. (years)