# Timezones

Timezones can sometimes be tricky, especially when working with global teams and customers. In Open Loyalty, we’ve designed our system to make sure that all date and time-related data stays accurate and consistent, no matter where you are in the world.

Here’s what you need to know:

***

### 🕓 1. Timezone is Set per Tenant

Each tenant in Open Loyalty has a specific timezone assigned.\
You can view or update it in the **Settings > Tenants** section.

This setting affects how all dates and times are saved, displayed, and calculated across the platform.

<a href="/pages/j48yqHrYfv39cNFAHNej#timezone" class="button secondary">Tenants Settings</a>

***

### 📩 2. Events Save Times with Tenant’s Timezone

Every event you send to Open Loyalty, such as transactions or custom events, is stored with a timestamp that includes the tenant's timezone offset.

For example:

* If your tenant's timezone is **Europe/Berlin** (which is **CEST**, UTC+02:00),
* and you send an event with this timestamp:\
  `2025-05-13T14:40:10`
* Open Loyalty will store it as:\
  `2025-05-13T14:40:10+02:00`

The `+02:00` at the end shows the offset from UTC.

{% hint style="warning" %}
In this article, we include the example of Berlin timezone set to **UTC+02:00** during daylight saving.&#x20;

Please note that a different timezone offset may apply during other parts of the year, for example, **UTC+01:00** outside of daylight saving time.\
This behavior applies to all timezones that observe daylight saving.
{% endhint %}

***

### 🔁 3. What Happens When You Include Your Own Timezone

If you send an event **with a timezone specified**, Open Loyalty will convert it to the tenant’s timezone behind the scenes.

Example:

* You send: `2025-05-13T12:40:10Z` or `2025-05-13T12:40:10+00:00`  (UTC time)&#x20;
* Tenant timezone: Berlin (UTC+02:00)
* Open Loyalty will convert and store it as:\
  `2025-05-13T14:40:10+02:00`

This ensures consistency, all dates are aligned with the tenant’s settings.

***

### 🖥️ 4. Admin Panel Shows Times in Your Local Timezone

If you're using the Open Loyalty Admin Panel from a different timezone than the tenant’s, don’t worry -  we’ve got you covered.

The Admin Panel automatically adjusts the displayed time to **your browser’s local timezone**.

Example:

* Event happens at **2 PM in Berlin time**
* You’re in London (UTC+01:00)
* You’ll see it displayed as **1 PM**

This also applies to things like campaign start/end dates, member activity logs, and achievement records.

***

### 🎯 5. Campaigns & Achievements Use Tenant’s Timezone

Campaign rules and achievement triggers are based on the **tenant’s configured timezone**.

For example, if your tenant is set to **Los Angeles**, and your campaign is active from:

> **1 May, 00:00** → **31 May, 23:59** *(Los Angeles time)*

Then an event sent at:

> **31 May, 23:00 Pacific Time**

✅ **Will trigger the campaign** because it falls within the tenant’s date range.

However, if your tenant is set to **London time**, the same event:

> **31 May, 23:00 Pacific Time** = **1 June, 06:00 UTC**

⚠️ **Will not trigger the campaign**, as it falls outside the defined UTC date range.

**Always make sure your campaign timeframes align with your tenant’s timezone to avoid surprises.**

***

### ✅ Best Practices

* Always be aware of your **tenant’s timezone**.
* When sending events, you can either include the full timestamp with a timezone (e.g. `2025-05-13T12:40:10Z`) or provide a date without a timezone (e.g. `2025-05-13T14:40:10`).\
  In both cases, Open Loyalty will automatically store the event using the tenant's configured timezone, either by adding the correct offset or converting the datetime accordingly.
* **Remember**: what you see in the Admin Panel is based on **your** timezone, not the tenant’s.

***

Still have questions about how timezones work in Open Loyalty?\
Reach out to our support team - we're happy to help! ⏳


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.openloyalty.io/faq/timezones.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
