From what I can tell, KDateTime::ClockTime is the correct thing to use for timezone-independent dates, so this "should" work.
Perhaps there is a bug in our mkcal implementation, which always converts dtStart/dtEnd dates to the local timezone, regardless of the "original" timespec, instead of detecting if the timespec is ClockTime, and if so, adjusting accordingly?  I don't know, but I think that's outside the scope of this particular patch.