feat(todo): a calendar's feed read, and linked to a project in its payload (ADR 0033, D39)

The developer's decisions of 10 Nov 2026 for calendar feeds, recorded as
D39: a project links to a calendar's iCal feed, its events shown beside
tasks, read-only; each device fetches it, the address sealed in the
project's payload, the last copy kept on the device.

This lays the ground: `readIcal` reads a feed's events (title, start,
end or duration, all-day, place, cancelled, the dates a recurrence
leaves out and the occurrences changed on their own), on the device's
clock through `timezone`, and expands their recurrence with pub.dev's
`rrule` (Apache-2.0, the developer's choice); `ProjectContent` gains
`calendarUrl`, its payload staying schema 1. Nothing shows it yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-10 11:49:34 +01:00
commit 892a58f4fd
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1732,6 +1732,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.1"
rrule:
dependency: transitive
description:
name: rrule
sha256: f6f6ad5bf7b19d218d4c985d6055d3c9717f1d6efd5d1c0127b1146f1eb3640c
url: "https://pub.dev"
source: hosted
version: "0.2.18"
rxdart:
dependency: transitive
description:
@ -2242,6 +2250,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.6.18"
time:
dependency: transitive
description:
name: time
sha256: "46187cf30bffdab28c56be9a63861b36e4ab7347bf403297595d6a97e10c789f"
url: "https://pub.dev"
source: hosted
version: "2.1.6"
timezone:
dependency: transitive
description: