This website requires JavaScript.
749eccfaaa
feat: left navigation drawer (calendars + groups + view + menu)
Guido Schmit and Claude Opus 4.8
2026-07-15 18:35:03 +02:00
7981ced5ba
iOS drawer: declutter controls, bigger header, more top spacing
Scarriffle and Claude Opus 4.8
2026-07-15 18:06:56 +02:00
6881c68935
iOS drawer: flat reorderable calendars, long-press menu, left-swipe close, header actions
Scarriffle and Claude Opus 4.8
2026-07-15 16:19:29 +02:00
daf0345120
iOS drawer: drop the grouped-section card behind show/hide-all
Scarriffle and Claude Opus 4.8
2026-07-15 06:46:32 +02:00
108503ad53
iOS: month-switching setting as a named dropdown (parity with web)
Scarriffle and Claude Opus 4.8
2026-07-15 06:45:22 +02:00
a7802778b6
Web: expose month-navigation mode as a named dropdown
Scarriffle and Claude Opus 4.8
2026-07-15 06:26:02 +02:00
e008d5d98a
iOS drawer: compact show/hide-all, single menu button, corner-safe footer
Scarriffle and Claude Opus 4.8
2026-07-15 06:09:38 +02:00
d90a1a552c
iOS: left side drawer (calendars + groups + nav) and opt-in top-bar colour
Scarriffle and Claude Opus 4.8
2026-07-14 22:24:24 +02:00
fd804000c5
feat: per-setting sync table with dynamic 8-colour theme
Guido Schmit and Claude Opus 4.8
2026-07-14 22:09:46 +02:00
7a89cc44f8
Web: settings page nav/header follow the surface colour too
Scarriffle and Claude Opus 4.8
2026-07-14 22:08:22 +02:00
131f6b496d
Add configurable surface/sidebar colour + clearer sync-icon state
Scarriffle and Claude Opus 4.8
2026-07-14 22:01:16 +02:00
9a50f25f57
iOS: per-setting sync table with sync icons, dropdowns, colour resets
Scarriffle and Claude Opus 4.8
2026-07-14 21:31:16 +02:00
4ab07ddcc3
Web polish from testing feedback + admin role toggle
Scarriffle and Claude Opus 4.8
2026-07-14 21:25:01 +02:00
137694ed98
Web: unified settings sync table with per-setting sync toggles
Scarriffle and Claude Opus 4.8
2026-07-14 21:07:26 +02:00
3d58e8fef8
Document the cross-device settings-sync contract
Scarriffle and Claude Opus 4.8
2026-07-14 20:46:23 +02:00
91ae434e7c
Add per-setting cross-device sync flags to user settings
Scarriffle and Claude Opus 4.8
2026-07-14 20:44:44 +02:00
1f1eb582ed
Birthdays: explicit "Birthday calendar" add type + tidier table defaults (web)
Scarriffle and Claude Opus 4.8
2026-07-13 21:34:38 +02:00
d4fd7beaf7
Birthdays: explicit calendar creation, sync never auto-creates (iOS)
Scarriffle and Claude Opus 4.8
2026-07-13 21:25:06 +02:00
29ddc5acbb
Enforce a single birthday calendar per account (server-side)
Scarriffle and Claude Opus 4.8
2026-07-13 21:22:10 +02:00
0ce77ccdf8
Add drag-resizable columns to the calendar settings table
Scarriffle and Claude Opus 4.8
2026-07-13 21:06:36 +02:00
16ff434bef
Make imported-event dedup bulletproof (server-side, id-based)
Scarriffle and Claude Opus 4.8
2026-07-13 20:53:11 +02:00
1a30b4066a
Fix: don't squeeze the Kalender settings table into the 680px column
Scarriffle and Claude Opus 4.8
2026-07-13 20:49:26 +02:00
fdad9c9ba4
chore(android): target SDK 35 + version 1.0.0 for Play release
Guido Schmit and Claude Opus 4.8
2026-07-13 19:30:27 +02:00
1f90503104
chore(android): git-ignore keystore.properties + add example
Guido Schmit and Claude Opus 4.8
2026-07-13 19:16:42 +02:00
486cc9c622
feat(android): single birthday-calendar model + group-visible exclusion
Guido Schmit and Claude Opus 4.8
2026-07-13 19:08:19 +02:00
69ed8bf67d
Birthdays: single calendar model + sync on server-sync (iOS)
Scarriffle and Claude Opus 4.8
2026-07-13 19:07:46 +02:00
aa12b83302
Birthday sync-device list + guard group-visible against birthday calendar
Scarriffle and Claude Opus 4.8
2026-07-13 18:52:02 +02:00
7dbaad4b00
feat(android): birthday display, calendar creation and manual entry
Guido Schmit and Claude Opus 4.8
2026-07-13 17:39:33 +02:00
5b5a5d5cd8
chore(android): release signing via keystore.properties
Guido Schmit and Claude Opus 4.8
2026-07-13 17:39:33 +02:00
871fb833ba
chore: sync Xcode project structure (Shared group + widget embedding)
Scarriffle and Claude Opus 4.8
2026-07-13 17:18:34 +02:00
19258096e2
Tidy settings layout (web)
Scarriffle and Claude Opus 4.8
2026-07-13 04:31:12 +02:00
6baa07379f
Rework birthdays to a single calendar + UI fixes (web)
Scarriffle and Claude Opus 4.8
2026-07-13 04:20:49 +02:00
eb0684b99c
Add birthday feature (web)
Scarriffle and Claude Opus 4.8
2026-07-12 22:10:52 +02:00
cf990e4279
Add birthday feature (iOS)
Scarriffle and Claude Opus 4.8
2026-07-12 21:58:31 +02:00
ca09538971
Add birthday calendar backend support
Scarriffle and Claude Opus 4.8
2026-07-12 21:38:37 +02:00
e55e6c7c92
feat(ios): toggle month view between scroll feed and paged swipe
Scarriffle and Claude Opus 4.8
2026-07-08 05:15:58 +02:00
e49a2e027f
feat(android): toggle month view between scroll feed and paged swipe
Guido Schmit and Claude Opus 4.8
2026-07-07 22:47:26 +02:00
8d7ac124ae
fix(android): edge-to-edge insets + show all calendars in the filter
Guido Schmit and Claude Opus 4.8
2026-07-07 22:29:07 +02:00
d426f8985c
style(web): dark-mode the share modal's add-user search + permission select
Scarriffle and Claude Opus 4.8
2026-07-07 13:24:05 +02:00
89a1355149
fix(web): inverted condition broke hiding shared calendars
Scarriffle and Claude Opus 4.8
2026-07-07 10:32:34 +02:00
f844ded57d
fix(web): hide edit/delete for others' events; persistent hide for shared calendars
Scarriffle and Claude Opus 4.8
2026-07-07 10:11:46 +02:00
ec85a5b5f3
fix(web): show dialogs opened from settings on top of the settings page
Scarriffle and Claude Opus 4.8
2026-07-06 22:31:03 +02:00
af64e191ec
fix(web): reset checkbox size inside .form-group so the label isn't squeezed
Scarriffle and Claude Opus 4.8
2026-07-06 22:23:28 +02:00
52bc7066db
fix(web): settings modal — table crash, tab restore, checkbox layout
Scarriffle and Claude Opus 4.8
2026-07-06 22:16:10 +02:00
7d5530e51c
fix(web): open settings modal before populating it
Scarriffle and Claude Opus 4.8
2026-07-06 21:51:56 +02:00
90bc4b1531
fix(web): bind UI handlers before first fetch so a data error can't kill the UI
Scarriffle and Claude Opus 4.8
2026-07-06 21:44:32 +02:00
1eecf834a3
fix(sharing): per-user calendar colour works for every sharing path
Scarriffle and Claude Opus 4.8
2026-07-06 21:38:16 +02:00
b8a578cf53
refactor(web): use server per-user colour for shared calendars
Scarriffle and Claude Opus 4.8
2026-07-06 21:22:33 +02:00
572172c424
fix(web): stay logged in when app initialisation fails after reload
Scarriffle and Claude Opus 4.8
2026-07-06 21:22:33 +02:00
c4195243c0
feat(sharing): let share recipients recolour a shared calendar
Scarriffle and Claude Opus 4.8
2026-07-06 20:57:53 +02:00
bd3c92aa86
feat(sharing): let share recipients recolour a shared calendar
Guido Schmit and Claude Opus 4.8
2026-07-06 20:49:29 +02:00
343f7a5e7b
feat(sharing): recipients can recolour a shared calendar (per-user, no rename)
Scarriffle and Claude Opus 4.8
2026-07-06 20:40:13 +02:00
cad48efcc6
feat(web): recolour calendars shared with me (per-device local override)
Scarriffle and Claude Opus 4.8
2026-07-06 18:49:07 +02:00
32cb8e1689
feat(sharing): hidden-profile toggle + hide non-sharing group members
Scarriffle and Claude Opus 4.8
2026-07-06 18:45:49 +02:00
2ae8499247
fix(web): can't edit calendars shared with me; struck-pencil read-only marker
Scarriffle and Claude Opus 4.8
2026-07-06 18:38:01 +02:00
79fdf4f54a
feat(sharing): group-shared calendars in every member's sidebar, person share picker, hidden profiles
Scarriffle and Claude Opus 4.8
2026-07-06 16:35:11 +02:00
f76d2783d9
feat(web): show shared calendars under the owner's name
Scarriffle and Claude Opus 4.8
2026-07-06 14:41:31 +02:00
3f5de5cdfa
fix(security): store auth token in Keychain and restrict ATS to local networking
Scarriffle and Claude Opus 4.8
2026-07-06 14:32:01 +02:00
e539508bec
fix(security): scope CalDAV PUT to its calendar, block iCal SSRF, auth avatar endpoint
Scarriffle and Claude Opus 4.8
2026-07-06 14:16:24 +02:00
784c9013eb
feat(web): mark read-only shared calendars and hide them from the event editor
Scarriffle and Claude Opus 4.8
2026-07-04 19:02:12 +02:00
9db04361cc
feat(sharing): show shared calendars read-only (parity with server/Android)
Scarriffle and Claude Opus 4.8
2026-07-04 18:56:32 +02:00
993d5d83e1
feat: clearer shared calendars + move group switch into the menu
Guido Schmit and Claude Opus 4.8
2026-07-04 18:52:57 +02:00
e3844294ae
feat(sharing): label shared personal calendars by owner + drop group title prefix
Scarriffle and Claude Opus 4.8
2026-07-04 18:42:26 +02:00
e9d58d8239
feat(visibility): separate local quick-hide from server-synced banish
Guido Schmit and Claude Opus 4.8
2026-07-04 11:09:45 +02:00
ca4c875659
fix(visibility): auto-reconcile server sidebar_hidden on launch/resume/sync
Guido Schmit and Claude Sonnet 4.6
2026-07-03 22:05:08 +02:00
325f357357
fix(visibility): auto-reconcile server sidebar_hidden on launch/resume/sync
Scarriffle and Claude Sonnet 4.6
2026-07-03 22:04:58 +02:00
80bdb91acf
fix(cache): preserve events from calendars/sources that failed to sync
Guido Schmit and Claude Sonnet 4.6
2026-07-03 21:35:39 +02:00
444772c959
fix: attribute account-level token failures to each calendar
Scarriffle and Claude Sonnet 4.6
2026-07-03 21:31:26 +02:00
61237134f0
fix(cache): preserve whole source on account-level sync errors (HA/Google tokens)
Scarriffle and Claude Sonnet 4.6
2026-07-03 21:31:05 +02:00
fb22aeb090
fix(cache): retry failed-calendar ranges instead of marking them as cached
Scarriffle and Claude Sonnet 4.6
2026-07-03 20:55:57 +02:00
1cbab3f3ec
fix: preserve cached events when a calendar has a per-source sync error
Scarriffle and Claude Sonnet 4.6
2026-07-03 20:06:11 +02:00
382cb717a4
fix: match sync errors to calendars by id, not name suffix
Guido Schmit
2026-07-02 19:00:49 +02:00
e0ea16f2ef
fix: include calendar_id in per-calendar sync errors
Scarriffle
2026-07-02 18:36:46 +02:00
a3568fb6f3
fix: actually pass force through from loadVisible to loadRange
Guido Schmit
2026-07-02 18:34:08 +02:00
9dd41420b6
fix: safe performance and crash-safety fixes
Guido Schmit
2026-07-02 18:30:21 +02:00
3137abcef2
fix: surface per-calendar sync errors from server
Guido Schmit
2026-07-02 18:27:00 +02:00
8ed474663e
feat: surface per-calendar sync errors from /api/caldav/events
Scarriffle
2026-07-02 18:25:47 +02:00
9fb350eb29
fix: surface all calendar sync failures, not just Google
Scarriffle
2026-07-02 18:22:11 +02:00
94655ce7c5
fix(caldav): match Basic Auth username case-insensitively
Scarriffle and Claude Opus 4.8
2026-07-01 14:38:21 +02:00
9306d638ad
fix(caldav): move app-password section to Settings → Profile where users look
Scarriffle and Claude Opus 4.8
2026-07-01 14:17:25 +02:00
f662163185
feat(caldav): app-specific passwords so MFA accounts can use CalDAV
Scarriffle and Claude Opus 4.8
2026-07-01 13:15:35 +02:00
fb32f0424f
feat(caldav): username/password (Basic Auth) access with discovery + https URLs
Scarriffle and Claude Opus 4.8
2026-07-01 12:44:16 +02:00
34e701fa78
feat(pwa): auto-update service worker so new releases take effect without manual cache clearing
Scarriffle and Claude Opus 4.8
2026-07-01 11:24:05 +02:00
661a8ea579
chore: bump APP_VERSION to v65 (cache-bust / deploy verification)
Scarriffle and Claude Opus 4.8
2026-07-01 11:12:21 +02:00
47944ed952
feat: publish local calendars via two-way CalDAV (opt-in, secret token URL)
Scarriffle and Claude Opus 4.8
2026-07-01 10:19:01 +02:00
a591eb51d3
chore: bump APP_VERSION to v63 to ship mini-cal + week-view fixes
Scarriffle and Claude Opus 4.8
2026-07-01 10:15:41 +02:00
f791160d1a
fix: mini-cal marks full multi-day span; short week events show title inline
Scarriffle and Claude Opus 4.8
2026-07-01 09:42:02 +02:00
906241a743
fix: agenda view scrolls to current date on render
Scarriffle and Claude Opus 4.8
2026-06-18 17:13:18 +02:00
4e9ae83299
feat(widget): calendar filter config + fix group-view data leak
Scarriffle and Claude Sonnet 4.6
2026-06-17 18:41:43 +02:00
2e76e63ba2
fix: event popup — allow toolbar button clicks and text selection while draggable
Scarriffle and Claude Opus 4.8
2026-06-17 12:15:38 +02:00
6e8efb2ed5
feat(sidebar): dedicated share-icon set for group-visible indicator
Scarriffle and Claude Sonnet 4.6
2026-06-15 22:02:54 +02:00
d6159f0639
feat: calendar rename for all sources, group icon in sidebar, configurable share icon
Scarriffle and Claude Sonnet 4.6
2026-06-15 21:56:24 +02:00
d2d5e2b19c
feat(filter): sync calendar visibility to server for CalDAV/Google/HA
Guido Schmit and Claude Sonnet 4.6
2026-06-15 21:48:36 +02:00
be3d4057b3
feat(sidebar): distinct share icon for groupVisible, hide scrollbars
Scarriffle and Claude Sonnet 4.6
2026-06-15 21:36:36 +02:00
eb9440c2b2
feat(sidebar): move group icon before calendar name
Scarriffle and Claude Sonnet 4.6
2026-06-15 21:30:31 +02:00
34777c78c9
fix(sidebar): min-height approach for action buttons, no overlap or jump
Scarriffle and Claude Sonnet 4.6
2026-06-15 21:24:57 +02:00
0427e1189d
fix(sidebar): absolute-position action buttons to prevent name truncation
Scarriffle and Claude Sonnet 4.6
2026-06-15 21:18:04 +02:00
c1fdfe72d0
fix: modal scrollbar clips rounded corners + sidebar hover jump (v56)
Scarriffle and Claude Sonnet 4.6
2026-06-15 20:58:44 +02:00
6365f99ac0
feat: persist active settings tab in URL hash (v55)
Scarriffle and Claude Sonnet 4.6
2026-06-15 20:52:14 +02:00
d04e2952cb
fix: replace reminders checkbox with bell icon in calendar table (v54)
Scarriffle and Claude Sonnet 4.6
2026-06-15 20:48:12 +02:00