> I'd tend to prefer to store in UTC and store the associated timezone separately.
This is exactly the wrong approach for calendaring software, because it results in appointments moving in time when governments change the daylight saving time rules.
Storing in a local time (plus time zone) is exactly right for calendaring. And the correct-sounding, but wrong, mantra of "always store in UTC" is why calendaring apps handled the change so poorly.