feat(backup): automatic periodic .ics export of local calendars (#8) #47

Merged
makiolaj merged 2 commits from feat/auto-backup into release/v2.11.0 2026-06-27 20:22:22 +00:00
Owner

Closes #8.

Scheduled one-way export of local calendars to a user-chosen folder, overwriting calendula-backup.ics each run — the manual backup, automated. Not a sync; stays INTERNET-free (provider reads + local file write).

  • WorkManager periodic job (new deps: work-runtime-ktx, documentfile); worker pulls collaborators via a Hilt @EntryPoint (no custom WorkerFactory wiring). First periodic run is delayed one interval so it can't race the immediate run-now; the writer overwrites the canonical file and cleans up any "(1)" duplicates.
  • SettingsPrefs: enabled, interval (minutes, floored at 30), folder Uri, last-run status; persisted SAF write grant.
  • UI in Calendars > Backup: toggle, folder picker, amount+unit interval dialog, last-run status line. Notifies after repeated failures.

On-device verified: exported file contents match the provider's local-calendar event exactly.

Closes #8. Scheduled one-way export of local calendars to a user-chosen folder, overwriting calendula-backup.ics each run — the manual backup, automated. Not a sync; stays INTERNET-free (provider reads + local file write). - WorkManager periodic job (new deps: work-runtime-ktx, documentfile); worker pulls collaborators via a Hilt @EntryPoint (no custom WorkerFactory wiring). First periodic run is delayed one interval so it can't race the immediate run-now; the writer overwrites the canonical file and cleans up any "(1)" duplicates. - SettingsPrefs: enabled, interval (minutes, floored at 30), folder Uri, last-run status; persisted SAF write grant. - UI in Calendars > Backup: toggle, folder picker, amount+unit interval dialog, last-run status line. Notifies after repeated failures. On-device verified: exported file contents match the provider's local-calendar event exactly.
makiolaj added 1 commit 2026-06-27 20:14:58 +00:00
feat(backup): automatic periodic .ics export of local calendars (#8)
All checks were successful
Translations / check (pull_request) Successful in 5s
CI / ci (pull_request) Successful in 8m47s
548e581554
Scheduled one-way export of local calendars to a user-chosen folder,
overwriting calendula-backup.ics each run — the manual backup, automated.
Not a sync; stays INTERNET-free (provider reads + local file write).

- WorkManager periodic job (deps: work-runtime-ktx, documentfile); worker
  pulls collaborators via a Hilt @EntryPoint, so no custom WorkerFactory
  wiring. First periodic run is delayed one interval so it can't race the
  immediate "run now" feedback run; the writer also overwrites the canonical
  file and cleans up any "(1)" duplicates from earlier races.
- SettingsPrefs: enabled, interval (minutes, floored at 30), folder Uri,
  last-run status; persisted SAF write grant.
- UI in Calendars > Backup: toggle, folder picker, amount+unit interval
  dialog, last-run status line. Notifies after repeated failures.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
makiolaj added 1 commit 2026-06-27 20:17:27 +00:00
feat(backup): connect one-time export + automatic backup into one card
All checks were successful
Translations / check (pull_request) Successful in 5s
CI / ci (pull_request) Successful in 9m44s
1424f0ffc0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
makiolaj merged commit 8945b877b2 into release/v2.11.0 2026-06-27 20:22:22 +00:00
makiolaj deleted branch feat/auto-backup 2026-06-27 20:22:23 +00:00
makiolaj referenced this issue from a commit 2026-07-13 13:32:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: makiolaj/calendula#47