---
title: "12. Timezone Handling"
space: "CAMS Biometric Integration"
url: "https://docs.navari.co.ke/cams-biometric/timezone-handling"
updated: "2026-05-27"
---

Timezone management is one of the more subtle aspects of biometric attendance integration.

### 12.0 The Problem

The CAMS device stores timestamps in its local timezone (e.g. `GMT +0300` for Nairobi). When the device sends punches, the `LogTime` field includes the timezone offset. However, Frappe stores datetimes in the database in UTC. If the site's timezone setting is changed after data is collected, historical timestamps can appear shifted.



### 12.1 How the App Handles This

The app preserves the **original device timestamp** in a custom field `custom_original_time` on the Employee Checkin doctype. This field is set at the time of punch creation and never modified, even if system timezone settings change later. The primary `time` field on Employee Checkin is converted to the site's current timezone setting.



If you ever need to audit or reconcile attendance data, `custom_original_time` always gives you the ground truth from the device.



### 12.2 Best Practices

- Set your Frappe site timezone to match the physical location of your biometric devices before starting live data capture
- If you have multiple sites or locations in different timezones, consider whether a single CAMS Biometric Settings instance is sufficient or whether you need device-level timezone configuration
- Do not change the site timezone retroactively without auditing existing attendance records

