Daylight Savings Time?

Hello. I’m using Vikunja and yesterday my clock went one hour ahead in my timezone (DST offset). Now, all my tasks are offset +1 hour from the moment the clock went ahead. Is there any way of telling Vikunja to contemplate DST in a relative way? As in taking into account that the clock went one hour ahead and correct the due dates and remainders consistently? A workaround would be to set a timezone that compensates the change, but perhaps there’s a more elegant option I haven’t contemplated?

Thank you for your work on Vikunja, I’ve been using it since last year and it rocks!

The frontend should take into account the time zone you set in your pc / browser when displaying any dates. What time zone did you configure in the api config? What time zone is your server configured to use?

The next release will have an option to set the time zone per user which will allow Vikunja to make sure all users receive reminders at the correct time.

I’m using Vikunja stable setup with docker and my timezone is Europe/Madrid (UTC +01:00 & DST +02:00). I didn’t set any timezone in the API config. My server and browser are set to the same timezone and other services on my machine corrected the offset. Basically, any tasks that were set in the future after the time change will have their timestamps offset one hour ahead. For example, my weekly reminder to update my systems always occur at 12PM on a Sunday, but after the time change (from Saturday to Sunday at 02:00AM where the clock went one hour ahead to 03:00AM) my reminder/due date for that same task is 01:00PM. The expected behaviour is that Vikunja takes into account the time offset from DST and corrects the due date/reminders.

I’ve just set VIKUNJA_SERVICE_TIMEZONE to Europe/Madrid but I don’t notice any changes, so I’m guessing Vikunja already takes into account my timezone.

As a last note, I’ve just noticed that the time drift only happens with repeating tasks. Perhaps it is because repeating tasks use an absolute time span that don’t take into account if there’s been a time change?

Thanks for taking your time into my issue.

Did the drift happen with a repeating task that you marked done before the daylight saving? Like this:

  1. Mark repeating task as done
  2. New dates of the task are correct, after the daylight saving
  3. Daylight saving happens
  4. New Dates of the task are now one hour off

Or did the task have a repeating interval which would push it after the daylight savings day once it repeats? (old dates + interval > daylight savings date)

I’m not entirely sure since my repeating tasks are on a weekly basis and I didn’t check the next due date before the DST change, but the example task had a repeating interval that went after the DST time change (last Sunday at 02:00AM, while task was at 12:00PM), and I marked it done well before the time change (a week ago). So I would say the second case.

There’s also been a time drift with the daily overdue tasks remainder. I used to get a message at 09:00AM and now I get it at 10:00AM, but since I haven’t found an option to set the daily overdue task remainder hour, I don’t know if it’s related.

Thanks again.

And now since the time change the dates of the task are wrong?

What time zone runs your server in?

Kind of, I plan to add an option for that eventually.

My server runs in CET/CEST (UTC+01:00/UTC+02:00), Europe/Madrid.

My repeating tasks are offset one hour ahead. Both the due date and remainders. It’s reproducible even after the DST (CET to CEST) change:

  1. Set a task with a repeating interval that spans a daylight savings time change (in my case, the last Sunday of March)
  2. Click done so as to activate the repeating task with the new due date/reminders
  3. The due date/reminders are one hour ahead (from 12:00PM to 01:00PM)

Also reproducible in try.

Thanks for your patience. I know timezone bugs are a PITA.

Okay so basically, when a task repeats, it should check if daylight saving occurred between the old and the new date and if that’s the case, add/subtract the daylight savings difference from it?

What time zone should it use for that? The one configured by the user marking the task as done? Or the one from the user who created the task?

A big problem I see with that is that we either need a massive list with all the daylight savings events of the next few years or an external service which provides these dates. I imagine these things change fairly often, given how many time zones exist in the world and how many of these do daylight savings, so an external service would be the easiest in terms of upgradability. But then you have the reliance on that external service…