46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
# Time Tools
|
|
|
|
Plan across time zones and work with dates and recurrences locally in the browser.
|
|
|
|
Time Tools is a standalone local-first application in the [add·ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal). Inputs are processed in the browser and are not uploaded.
|
|
|
|
## Version 0.2 scope
|
|
|
|
- Exact signed epoch conversion through nanosecond precision
|
|
- IANA-zone comparison, skipped/ambiguous local-time resolution and transition inspection
|
|
- Side-by-side wall-clock and elapsed-duration arithmetic
|
|
- Bounded cron previews with explicit Unix/Vixie, GitHub Actions, Croner, Quartz and AWS EventBridge dialect rules, plus strict RFC 5545 RRULE previews
|
|
- A bounded multi-participant meeting planner that compares entered recurring local work windows across IANA zones
|
|
- Weekend/explicit-holiday business-day arithmetic and escaped UTC iCalendar event export
|
|
- Bounded `.ics` file/paste import with structural validation, multiple-event inventory, VTIMEZONE inspection and recurrence previews that apply EXDATE/RDATE plus moved or cancelled RECURRENCE-ID overrides
|
|
- Inert URL and attachment inspection: references are reported as data and are never fetched, opened, decoded or rendered
|
|
|
|
iCalendar import is limited to 8 MiB, 100,000 content properties, 20,000
|
|
components, 10,000 events, 16 component levels and 1,000 previewed
|
|
occurrences. Named TZIDs available to the browser are evaluated with its IANA
|
|
data. Custom VTIMEZONE observances are inventoried, but recurrence expansion is
|
|
withheld when the browser cannot execute that TZID rather than guessing an
|
|
offset.
|
|
|
|
Named-zone results use the IANA data supplied by the browser runtime and can therefore vary with browser versions. ECMAScript Temporal does not represent leap seconds. The business-day calculator excludes weekends and only the holiday dates supplied by the user; it does not infer regional calendars. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [docs/PRIVACY-SECURITY.md](docs/PRIVACY-SECURITY.md).
|
|
|
|
Cron previews intentionally reject fields or extensions outside the selected dialect and show the normalized expression and scheduler caveats. The meeting planner reads no calendar, holiday, travel or presence data: every candidate comes only from the work windows and weekend choices entered in the page.
|
|
|
|
## Development
|
|
|
|
Requires Node.js 22 and npm 11.
|
|
|
|
```sh
|
|
npm ci
|
|
npm run check
|
|
npm run test:browser
|
|
```
|
|
|
|
## Release
|
|
|
|
`npm run release:artifact` creates a deterministic `release/time-tools-0.2.0.zip` and checksum sidecar.
|
|
|
|
## Licence
|
|
|
|
GPL-3.0-or-later. Runtime dependencies retain their own licences; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
|