Guide
Timezones in programming is challenging, and Fibery is no exception. In this guide, we will explain how we handle timezones in Fibery.
Overview
Here are some important points to keep in mind when thinking about timezones in Fibery:
At the moment, Fibery does not allow the timezone to be defined for a Workspace or for a particular user.
Fibery stores all date-time fields on the server in UTC format.
UTC date-times are converted to the appropriate local time in the UI.
The timezone conversion applies only for date Fields with time.
The only exception is when you convert your Date Field to Date Time Field using Formula. In this case, you might face some issues.
An example
Let's say your timezone is GMT +2.
Here is how it works in Fibery:
You enter 13:00 for a date-time field in the UI.
The server will store this as 11:00 UTC.
After refresh, the backend will send 11:00 to the UI
It will be converted back to your local timezone
You will see 13:00.
If someone in the GMT+3 timezone opens the same entity, they will see 14:00.
Everything looks good so far, right?
Timezones in Formulas, Automations, Reports
There are some functions in Fibery that are executed on the server, which operates in UTC. It's important to note that there is no defined timezone for the Workspace, and the server is unaware of each user's timezone.
UTC time is utilized in Formulas, Automations, and Reports.
Let's get into details.
Timezones in Formulas and Automations
All examples assume that the user is in the GMT+2 timezone.
Example 1
Formula: ToText([Creation Date])
Creation Date:
Jun 14, 2021, 18:03
Formula result:
2021-06-14 16:03
How it works?
The result in formula is a text field.
Formulas are executed on the server.
You get a text representation of the [Creation Date] field in UTC.
No conversion to local timezone is being applied here.
If you want to retrieve 18:03 (which is what you see on UI for [Creation Date] field), you can change the formula to ToText([Creation Date] + Hours(2)). However, in this case, every user will see 18:03 regardless of their timezone, because the result is a text field.
Example 2
Formula: DateTime(2021, 1, 6, 12, 0, 0)
Formula result:
Jun 1, 2021, 14:00
How it works?
Example 3
Automation Rule: "When [Some field] is updated, set [DateTime field] value to Today()"
[Some field] is modified at
Jun 14, 2021, 18:03
[DateTime field] value:
Jun 14, 2021, 02:00
Today() returns a UTC date without a time value. As [DateTime field] is of the type date-time, we convert Today() to a date-time value, setting the time as the beginning of the day in UTC. You will see 02:00 in the UI because you're in the GMT+2 timezone.
In this particular case, it might be better to use the Now() function instead.
Timezones in Reports
You want to see how many bugs were completed during a specific period. Therefore, you need to build a histogram chart report "Count of Bugs vs Completion Date-Time."
For one particular bug, the Completion Date-Time is set to
Jun 14, 2021 01:00 in the UI.
This is equivalent to
Jun 13 23:00 in UTC
So this bug will be shown in the report as counting in the bar that corresponds to Jun 13.
FAQ
How do I add offset hours?
Offset hours refer to the difference in time between two locations. It indicates how many hours ahead or behind one location is compared to another location in terms of time.
Here is how you add them in Formulas & Automations: [Your Date Field] + Hours(number of offset hours in your timezone)
Please keep in mind that there can be confusion if your teammates live in different time zones.
How does Fibery handle time zones and Daylight Savings Time (DST)?
Fibery stores all date-time values in UTC and then adjusts what you see based on your device’s local time zone settings.
For example:
If you set a due date to noon in UTC+3, it is stored as 09:00 UTC.
A colleague in UTC+2 will see it as 11:00 local time.
This ensures everyone sees the correct local time, even if they’re in different time zones.
What about Daylight Savings Time (DST)?
DST adds complexity because not every day is exactly 24 hours long.
A time set in a DST period is stored relative to that DST offset (e.g. Eastern Time UTC-4).
Before DST starts, the same “wall clock” times can be 23 hours apart instead of 24.
During the transition (e.g. when clocks jump from 2:00am → 3:00am), some times literally don’t exist.
📌 Example:
A task due on March 9, 12:00pm Eastern (DST day) is stored as 16:00 UTC.
In Eastern time, this will always display as March 9, 12:00pm, even though the day before has only 23 hours.
Fibery always calculates based on:
The stored UTC time, and
The local timezone offset (including DST rules) at that specific date-time.
So what you see will always reflect your own timezone and whether DST applies on that date.