Chris S 069445579c Fix conversion to UTC for DST changes
The RepeatRuleDateTime constructor extracts the date's time zone then
passes it to the parent class DateTime. Because PHP's DateTime has full
support for time zones, it compensates for them when parsing a string.
Normally this isn't a problem, because the opposite occurs when a
DateTime is converted back into a string; the two adjustments cancel
each other.

Davical often converts a time to UTC by negating the time zone offset
and adding it to the underlying DateTime (keeping the time zone intact).
A problem occurs when the result is on the other side of a daylight-
saving-time transition. In that case the adjustments do not cancel and
an incorrect time string is returned.

This bug is tricky because the problem doesn't manifest during the DST
transition iself, but hours earlier or later depending on the original
time zone. For example, 2022-03-12T18:30:00-08:00 (America/Los_Angeles)
is 2022-03-13T02:30:00Z. Since 2022-03-13 is a 23-hour day in the Los
Angeles time zone (the 2AM-3AM hour is skipped) this becomes
2022-03-13T03:30:00-07:00 after adding the negated offset. FloatOrUTC()
would strip the new offset and simply return "20220313T033000".
2024-01-19 19:13:07 +13:00
2024-01-19 00:43:53 +13:00
2018-01-11 23:43:25 +01:00
2024-01-19 19:13:07 +13:00
2011-02-21 22:44:57 +13:00
2019-03-11 22:46:37 +01:00
2010-12-25 14:24:44 +13:00
2018-11-30 15:59:04 +13:00
2023-10-23 17:47:42 +13:00
2023-03-13 22:00:55 +01:00
2023-03-13 22:00:55 +01:00
2017-01-08 15:48:52 +01:00
2010-01-11 10:15:47 +13:00
2023-03-13 22:00:55 +01:00

DAViCal CalDAV Server by Andrew McMillan.

For documentation you are best advised to visit the DAViCal
website at https://www.davical.org/ or search our general mailing
list at https://lists.sourceforge.net/mailman/listinfo/davical-general

There's lots of useful information at https://wiki.davical.org/ as well,
and if you want access to update that contact us on IRC (#davical on OFTC,
be patient and stick around for a while) or send an e-mail
to <wiki-access@davical.org>.

Good luck!

Andrew McMillan

-----------------------------------------------
Copyright: 2006-2011 Andrew McMillan <andrew@mcmillan.net.nz>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA
Description
DAViCal is a server for calendar sharing. It is an implementation of the CalDAV protocol which is designed for storing calendaring resources (in iCalendar format) on a remote shared server.
Readme
Languages
PHP 71%
PLpgSQL 13.2%
Perl 11.7%
Shell 2%
Prolog 0.6%
Other 1.5%