Release Calendar Tools 0.2.0
Verify / verify (push) Canceled after 0s

This commit is contained in:
2026-09-02 11:20:48 +02:00
parent 47fbaba0b7
commit 1a741d6802
25 changed files with 1499 additions and 137 deletions
+9
View File
@@ -1,5 +1,14 @@
# Changelog
## 0.2.0 - 2026-09-02
- Added moved, cancelled, duration-changing and `RANGE=THISANDFUTURE`
recurrence overrides.
- Added VTODO, VJOURNAL, VFREEBUSY and VALARM inspection, agenda/month views,
bounded event/task authoring and free-slot planning.
- Added lossless jCal and focused JSCalendar Event/Task interchange with
explicit loss evidence.
## 0.1.0 - 2026-09-01
- Added the initial local-first Calendar Tools workbench.
+3 -3
View File
@@ -1,5 +1,5 @@
==============================================================================
@add-ideas/toolbox-contract@0.2.3
@add-ideas/toolbox-contract@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
@@ -198,7 +198,7 @@ Declared licence: Apache-2.0
==============================================================================
@add-ideas/toolbox-helpers@0.1.0
@add-ideas/toolbox-helpers@0.2.0
Declared licence: GPL-3.0-or-later
==============================================================================
--- LICENSE ---
@@ -879,7 +879,7 @@ Public License instead of this License. But first, please read
==============================================================================
@add-ideas/toolbox-shell-react@0.2.3
@add-ideas/toolbox-shell-react@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
+10 -2
View File
@@ -7,10 +7,18 @@ Calendar Tools is a standalone local-first application in the [add·ideas Toolbo
## Version 0.1 scope
- RFC 5545 parsing and inspection for events, recurrence, attendees, calendar metadata, and embedded VTIMEZONE definitions
- Bounded RRULE/RDATE/EXDATE occurrence preview and overlap/duplicate diagnostics
- VTODO tasks, VJOURNAL entries, VFREEBUSY intervals, and nested VALARM
inventory with focused diagnostics
- Bounded RRULE/RDATE/EXDATE occurrence preview, including moved or cancelled
RECURRENCE-ID instances, changed durations, and RANGE=THISANDFUTURE, plus
overlap/duplicate diagnostics
- Merge and deduplication by UID plus RECURRENCE-ID, preferring SEQUENCE and then DTSTAMP
- Conservative canonical repair: BOM/NUL removal, CRLF serialization, VERSION and PRODID normalization
- Browser-IANA timezone offset/transition reports and explicit DST gap/overlap classification
- Agenda and month occurrence views, bounded event/task authoring, and a local
working-hours/free-slot planner over event and VFREEBUSY intervals
- Lossless iCalendar component-tree import/export through RFC 7265 jCal, plus a
focused RFC 8984 JSCalendar Event/Task adapter with explicit loss warnings
- Relocatable offline PWA, local-only processing, and deterministic release packaging
Input is limited to 4 MiB, 100,000 physical lines, 10,000 components, and 5,000 events. Recurrence is limited to 500 occurrences per series, a 3,650-day horizon, and 5,000 displayed occurrences. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [docs/PRIVACY-SECURITY.md](docs/PRIVACY-SECURITY.md).
@@ -27,7 +35,7 @@ npm run test:browser
## Release
`npm run release:artifact` creates a deterministic `release/calendar-tools-0.1.0.zip` and checksum sidecar.
`npm run release:artifact` creates a deterministic `release/calendar-tools-0.2.0.zip` and checksum sidecar.
## Licence
+2 -2
View File
@@ -1,7 +1,7 @@
# Corresponding source
The corresponding source for Calendar Tools 0.1.0 is available at:
The corresponding source for Calendar Tools 0.2.0 is available at:
https://git.add-ideas.de/lotobo/calendar-tools/src/tag/v0.1.0
https://git.add-ideas.de/lotobo/calendar-tools/src/tag/v0.2.0
Build with Node.js 22, npm 11, `npm ci`, and `npm run release:artifact`.
+4 -4
View File
@@ -1,12 +1,12 @@
# Third-party notices
Calendar Tools 0.1.0 directly depends on these runtime packages:
Calendar Tools 0.2.0 directly depends on these runtime packages:
| Package | Pinned version | Declared licence |
| -------------------------------- | -------------: | ---------------- |
| `@add-ideas/toolbox-contract` | 0.2.3 | Apache-2.0 |
| `@add-ideas/toolbox-helpers` | 0.1.0 | GPL-3.0-or-later |
| `@add-ideas/toolbox-shell-react` | 0.2.3 | Apache-2.0 |
| `@add-ideas/toolbox-contract` | 0.3.0 | Apache-2.0 |
| `@add-ideas/toolbox-helpers` | 0.2.0 | GPL-3.0-or-later |
| `@add-ideas/toolbox-shell-react` | 0.3.0 | Apache-2.0 |
| `ical.js` | 2.2.1 | MPL-2.0 |
| `react` | 19.2.8 | MIT |
| `react-dom` | 19.2.8 | MIT |
+1 -1
View File
@@ -1,5 +1,5 @@
const CACHE_PREFIX = "calendar-tools-shell-";
const CACHE_NAME = CACHE_PREFIX + "0.1.0";
const CACHE_NAME = CACHE_PREFIX + "0.2.0";
const CORE = ["./", "./manifest.webmanifest", "./favicon.svg"];
self.addEventListener("install", (event) => {
event.waitUntil(
+12 -1
View File
@@ -3,7 +3,7 @@
"schemaVersion": 1,
"id": "de.add-ideas.calendar-tools",
"name": "Calendar Tools",
"version": "0.1.0",
"version": "0.2.0",
"description": "Inspect, repair, and reconcile calendars locally in the browser.",
"entry": "./",
"icon": "./favicon.svg",
@@ -21,6 +21,17 @@
"crossOriginIsolated": false,
"topLevelContext": false
},
"io": {
"accepts": [
{ "mediaType": "text/calendar", "extensions": [".ics", ".ifb"] },
{ "mediaType": "application/jscalendar+json", "extensions": [".json"] }
],
"produces": [
{ "mediaType": "text/calendar", "extensions": [".ics"] },
{ "mediaType": "application/jscalendar+json", "extensions": [".json"] }
]
},
"capabilities": { "required": [], "optional": [] },
"privacy": {
"processing": "local",
"fileUploads": true,