Skip to content

feat: probe whether a task keeps its alarm - #57

Merged
tobixen merged 3 commits into
mainfrom
feat/probe-todo-alarm
Nov 12, 2026
Merged

tobixen merged 3 commits into
mainfrom
feat/probe-todo-alarm

Conversation

@tobixen

@tobixen tobixen commented Nov 11, 2026

Copy link
Copy Markdown
Member

Commit message:

feat: probe whether a task keeps its alarm

save-load.todo.alarm stores a task with a VALARM (ACTION, TRIGGER:-PT15M
and a DESCRIPTION) and reads it back.  The same duration written
another way, or with default parameters, counts as kept.  Dropped is
"unsupported"; kept but rewritten is "broken", the behaviour naming
what changed.  Ox makes the trigger absolute and replaces the
description with "Open-XChange", while it keeps an event's alarm as
sent.  The definition lives in future_features until caldav has it.

Prompt: [we probably need] another probe in the caldav-server-tester library on whether task lists accept alarms
Followup-Prompt: save-load.todo.alarm is fine, and it's possible to use the behaviour or extra_keys to elaborate why it's broken.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>

The matching caldav hint and feature definition: python-caldav/caldav branch feat/todo-alarm-hint (PR not opened yet).

A time-range search should find an object overlapping the range, not
only one starting inside it (RFC 4791 section 9.9); Robur finds only
events starting inside, Cyrus and GMX only tasks.  It should also place
an event with a TZID and its VTIMEZONE at its UTC time; Infomaniak only
finds one when the range also reaches its local time read as UTC.

The olson-tzid probe now compares the bare-TZID event with a VTIMEZONE
control and a 12:00 UTC reference instead of expecting fixed answers,
so those two bugs no longer hide its verdict.  Its windows contain the
start, and a misplaced reference (Bedework 3) means "cannot test".

Prompts:
> [Found in] another session: date searches over a 30-minute window on robur 
> and infomaniak apparently does not find the events it should find.  Please 
> do research into this.  Those servers can be probed from the [local caldav 
> clone holding the test-server passwords] directory.

> (post-research) We need probes catching all this behaviour.  Do some (more) 
> research ...

> Go for search.time-range.*.overlap.  We need equivalent test for tasks.
> Journals don't count as they don't have a dtend.

> (on the claim that those probes are pointless as the caldav library does not 
> need it) one purpose of this tool is to expose any kind of deviations from 
> the RFC, from that perspective it should be probed, even if the caldav library
> does not need it.

> The olson-tzid probe possibly depends on this.  At least it needs to be 
> rewritten to work on infomaniak and robur.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
A new object saved under a taken name has a UID of its own, and that is
what save(no_overwrite=True) guards.  Bedework (3 and 5) refuses the
same UID with 412 but another one with 500, so the probe graded it
full while the conformance suite saw a 500 on creating under a taken
name.  Where the same UID got 412, the probe now tries another UID.
All 21 servers were reprobed; only Bedework's grade changes.

Prompt: [pick from the task list: "calendaring: remaining conformance failures on Ox, Zimbra and others"]
Followup-Prompt: ... First priority is to get the conformance tests passing for all the caldav servers available ...
Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
save-load.todo.alarm stores a task with a VALARM (ACTION, TRIGGER:-PT15M
and a DESCRIPTION) and reads it back.  The same duration written
another way, or with default parameters, counts as kept.  Dropped is
"unsupported"; kept but rewritten is "broken", the behaviour naming
what changed.  Ox makes the trigger absolute and replaces the
description with "Open-XChange", while it keeps an event's alarm as
sent.  The definition lives in future_features until caldav has it.

Prompt: [we probably need] another probe in the caldav-server-tester library on whether task lists accept alarms
Followup-Prompt: save-load.todo.alarm is fine, and it's possible to use the behaviour or extra_keys to elaborate why it's broken.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
@tobixen
tobixen force-pushed the feat/probe-todo-alarm branch from 27811f5 to 1b247a6 Compare November 12, 2026 21:08
@tobixen
tobixen merged commit 1b247a6 into main Nov 12, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant