- Function #titleparts is used as a string array, so that I can pass multiple parameters from a single logic point in the front end template. Normally, this would required redundantly copying the same logic if the information were passed in multiple template parameters.
- dates in up-date is in an odd range. This is done because years below 2500 can be interpreted as time by the #time function, and because dates <100 are misinterpreted. This allows a range of 6999BC to 6999AD. We could get an extra 1000 by adding 2500 instead of 3000, but it is easier on debugging if 3000 is used. This template keeps them in a high range for safety and subtract 3000 just before outputting. BC is indicated in ISO8601 with a negative sign preceding the year (see en:International Organization for Standardization "Annex B.1.1" in Technical Committee ISO/TC 154 ISO8601-2004 (pdf), p. page 27/ pdf page 33). Note that as of 2009-Feb, Operator misreports this as a positive number.
- precision is implemented using #time's formatting.
- the +1 day, + 1 year stuff is for time ranges. According to spec, the time end point must be just outside the range. So that if the event goes from monday to wednesday, the dtend date would be thursday. You add the unit that corresponds to the given precision.
See Firefox's free Operator toolbar. Check options for debug mode. There is a nice dialog to see the emitted html and the microformats that are recognized.