···494494 unsafe { bindings::i_cal_time_is_date(self.ptr) != 0 }
495495 }
496496497497+ /// Returns Unix timestamp (seconds since epoch) accounting for timezone.
498498+ /// This properly converts the time to UTC before returning the timestamp.
497499 pub fn as_timet(&self) -> i64 {
498498- unsafe { bindings::i_cal_time_as_timet(self.ptr) }
500500+ unsafe {
501501+ // Get the timezone associated with this time
502502+ let tz = bindings::i_cal_time_get_timezone(self.ptr);
503503+ if !tz.is_null() {
504504+ // Use timezone-aware conversion
505505+ bindings::i_cal_time_as_timet_with_zone(self.ptr, tz)
506506+ } else {
507507+ // No timezone info - interpret as UTC
508508+ bindings::i_cal_time_as_timet(self.ptr)
509509+ }
510510+ }
499511 }
500512}
501513