TowyTowy 0e15021c11 Fix: time-range filter on VTODO with DTSTART/DUE and CREATED/COMPLETED
visit_time_ranges() reuses a single "original_duration" variable for two
unrelated purposes: the DTSTART->DUE span and the CREATED->COMPLETED span.
When a VTODO carries all four properties (a completed task, which most
clients write with CREATED and COMPLETED), the second assignment clobbers
the first, and the DTSTART/DUE branch of the rfc4791-9.9 table then
reconstructs DUE as DTSTART + (COMPLETED - CREATED).

The elif chain already implements the RFC table correctly (DTSTART/DUE
take precedence over CREATED/COMPLETED), so the CREATED/COMPLETED value
is never wanted there. Keep it in its own variable.

Effect: such a VTODO is filtered against a bogus interval, both in
calendar-query REPORT and in item.find_time_range() (the enclosing range
cached for the storage prefilter), so completed tasks go missing from -
or wrongly appear in - client results.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-04 20:05:04 +02:00
2021-12-14 00:25:31 +01:00
2021-12-14 00:25:31 +01:00
2022-07-02 23:03:19 +02:00
2026-04-02 23:43:35 +02:00
2022-07-02 23:03:19 +02:00
2026-07-19 17:18:33 +02:00
2025-03-14 21:32:38 +01:00
2025-04-23 21:50:59 +02:00
2024-08-27 17:04:15 +02:00
2025-06-29 00:47:26 -06:00
2026-01-05 07:28:24 +01:00
2026-07-19 17:18:33 +02:00

Radicale

Test Coverage Status

Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts) server, that:

  • Shares calendars and contact lists through CalDAV, CardDAV and HTTP.
  • Supports events, todos, journal entries and business cards.
  • Works out-of-the-box, no complicated setup or configuration required.
  • Can limit access by authentication.
  • Can secure connections with TLS.
  • Works with many CalDAV and CardDAV clients
  • Stores all data on the file system in a simple folder structure.
  • Can be extended with plugins.
  • Is GPLv3-licensed free software.

For the complete documentation, please visit Radicale master Documentation.

Additional hints can be found

Before reporting an issue, please check

Description
No description provided
Readme 5.9 MiB
Languages
Python 87.4%
JavaScript 9.8%
HTML 1.1%
CSS 0.9%
Perl 0.8%