Issue with Time Zones in SeaTable Cloud Version

Hello,

I’m facing a problem with the Cloud version of SeaTable related to handling time zones when integrating with other services, specifically Zapier. However, I must clarify that the issue is not with Zapier.

We are using an integration with Calendly through Zapier to create a new row in SeaTable for each new call booking. The problem is that the time is being incorrectly converted. For example, if a client books a call for 2 PM in their time zone (Canada), it appears in SeaTable as a different time zone—specifically, it seems to be converted to the German time zone.

The main issue is that I cannot choose the correct time zone for processing these data in SeaTable. Even when I use a Python script to adjust the time to my local time zone (Kyiv), it still gets automatically converted to one hour earlier than my time zone. For instance, if a booking confirmation arrives for 2 PM Kyiv time, SeaTable displays it as 1 PM.

If I import the data as a text type, the time remains in the original ISO format from Calendly. But as soon as I change the column type to “Date and Time,” SeaTable automatically converts the time to one hour earlier than the actual time in my time zone.

Is there any way to set a default time zone in SeaTable for all integrations, or any other method to keep the time in the original time zone, or at least convert it correctly to the desired time zone (like Kyiv or Cyprus)?

I would greatly appreciate any help or suggestions on how to resolve this issue!

Thank you!

How SeaTable handle timezones

Currently, SeaTable stores date values as combined date and time with a time zone offset in ISO 8601 format like this:

image

Where does SeaTable knows the timezone from? Well, because I added the value in the web browser, SeaTable took automatically my local timezone from the browser.

Therefore, if I change the timezone in my browser, I will see a different time.
The same is valid for you. If you have another timezone, you will see another time than I.

Input via API

Without timezone

Now let’s come to the API: If you create a row, and you don’t pass a timezone, than SeaTable stores the input as ISO and adds the timezone of your SeaTable Server. For SeaTable Cloud this is +02:00.

Attention: It is misleading, that the return value of the input does not show the timezone.

But in the web interface, I will see 10 am. Also If I request the row via API, I will see the +02:00

image

Input with timezone

Alternatively, you can create a new row and add a timezone. Because the SeaTable Cloud Server is located in Germany, it has +02:00 and therefore it changes the value to match ISO with +02:00:

In the web interface I get 9 am, because for +03:00, the input of 10am is 9 am.

image

If I retrieve the value from the base again, it is saved as 09:00+02:00.

Summary

The timezone SeaTable uses is always the timezone that is configured in the server. For SeaTable Cloud this is +02:00. All values stored to a time/date column is stored with +02:00.

If you enter a date/time via webinterface SeaTable automatically changes the time to +02:00.
If you create a new row via api, you have to make sure to pass the input correctly that it matches your local timezone.

Zapier and calendly

Now it is your turn to solve this challenge. How does calendly and zapier deliver the date/time? Then decide how you would like to manipulate the values before you send the values to SeaTable. Do you want to save the row with timezone or without?

Thank you for the detailed explanation on how SeaTable handles time zones. I wanted to provide some additional information based on the steps we’ve taken and the remaining issues we’re facing.

Issue Details:

  1. Calendly and Zapier Data Delivery:

• Calendly sends the date and time in UTC format, for example, 2024-08-27T08:14:06.519947Z. When this data is received in Zapier, it is still in UTC (Z denotes UTC time).

• In Zapier, I use the “Formatter” function to add 3 hours to the UTC time to convert it to Kyiv time (UTC+3). The adjusted time appears as 2024-08-27T11:14:06+03:00 in Zapier, as shown in the “Data Out” screenshot.

  1. Data Handling in SeaTable:

• When this formatted data is sent to SeaTable and stored in a text column (“Invitee Created At Copy”), the time appears correctly as 2024-08-27T11:14:06+03:00.

• However, when stored in a “Date and Time” column (“Invitee Created At”), SeaTable automatically converts the time based on the server’s time zone setting (UTC+2 for the German server of SeaTable Cloud), resulting in the incorrect time 10:14 instead of 11:14.

Steps Taken to Resolve the Issue:

• I formatted the time in Zapier using “Add/Subtract Time” to adjust the time zone before sending it to SeaTable.

• Despite setting the time zone explicitly in the formatted output (+03:00 for Kyiv), SeaTable continues to interpret the time as UTC and converts it to the server’s time zone.

Questions:

• Is there a way to configure SeaTable so that it does not automatically convert the time when a specific time zone is already provided?

• Can we set a specific time zone for certain columns in SeaTable to prevent unwanted automatic conversion?

• If this is not currently possible, are there any workarounds or best practices you can suggest to ensure the time is stored and displayed correctly in the desired time zone?

We want to make sure that the date and time data are accurately represented without any further conversion after being formatted correctly in Zapier.

Thank you for your assistance!



Let me clarify this with the developers. I will get back to you…

I found the solution. It turns out that the system is tied to UTC+2 (German time zone) rather than UTC in general. By adding +1 to the German time zone instead of +3 to UTC, everything displays correctly.

Знімок екрана 2024-08-29 о 22.57.29

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.