The policy is an Astro page in the website repo, not a file here — same shape as Calendula's, which keeps no copy in its own tree at all. The docs file says so and links both the published URL and the Astro source, so nobody edits the wrong one; it stays the text of record only until that page ships, since it is currently the only copy there is. The README gains a Privacy section with the same link. It links the published page only — the website repo is on the self-hosted Gitea and readers of a public README cannot reach it. Corrects ece4167's message, which said this file stays the policy's source.
90 lines
4.4 KiB
Markdown
90 lines
4.4 KiB
Markdown
<div align="center">
|
|
|
|
<h1>Agendula</h1>
|
|
|
|
<p><strong>A modern Material 3 Expressive task app for Android.</strong><br>
|
|
Keeps your tasks on your device, or on top of a tasks provider you already use.
|
|
Open standards, no account required.</p>
|
|
|
|
<a href="https://codeberg.org/jlmakiola/agendula/actions"><img src="https://codeberg.org/jlmakiola/agendula/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI"></a>
|
|
<img src="https://img.shields.io/badge/Android-10%2B-3DDC84?logo=android&logoColor=white" alt="Android 10+">
|
|
<img src="https://img.shields.io/badge/Kotlin-Compose-7F52FF?logo=kotlin&logoColor=white" alt="Kotlin + Compose">
|
|
<img src="https://img.shields.io/badge/Material%203-Expressive-4285F4" alt="Material 3 Expressive">
|
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green" alt="MIT License"></a>
|
|
|
|
</div>
|
|
|
|
Agendula is the task-list sibling to [Calendula](https://codeberg.org/jlmakiola/calendula).
|
|
Where Calendula is a pure front-end over Android's `CalendarContract`, Agendula
|
|
keeps its own store, designed around RFC 5545's `VTODO` — the same tasks DAVx5
|
|
(and SmoothSync, DecSync, …) sync out of your CalDAV server. It can also read and
|
|
write a tasks provider you already have, for anyone already syncing that way.
|
|
|
|
The name rhymes with its sibling on purpose: **Agendula** is *agenda* — Latin for
|
|
“things to be done” — given Calendula's `-ula` ending. Calendula keeps your days;
|
|
Agendula keeps your to-dos. (A Calendula flower head is botanically a cluster of
|
|
many small *florets* — so the two apps are florets of one bloom.)
|
|
|
|
## Where your tasks live — your choice
|
|
|
|
| | Where | Sync | Needs |
|
|
|---|---|---|---|
|
|
| **On your device** *(default)* | Agendula's own database | none yet — CalDAV sync of our own is planned | nothing. No account, no permissions, no other app |
|
|
| **In a provider you already use** | OpenTasks or tasks.org | whatever syncs it for you — DAVx5 and friends | that app installed, and its read/write permission |
|
|
|
|
Agendula's own store is an ordinary app database — nothing is published to other
|
|
apps, so there is no authority to clash over and no permission to grant. It
|
|
**coexists with OpenTasks rather than replacing it**: installing one never breaks
|
|
the other, and if you already sync through a provider, that keeps working exactly
|
|
as it did.
|
|
|
|
Recurring tasks are expanded per RFC 5545, and everything the schema does not
|
|
model is round-tripped verbatim rather than dropped — so passing your tasks
|
|
through Agendula does not quietly lose fields a server sent.
|
|
|
|
Your tasks are exportable as standard iCalendar `.ics` files at any time, because
|
|
data you can't take with you isn't really yours.
|
|
|
|
> **Status: backend complete, UI catching up.** Storage, reads and
|
|
> writes, smart-list filtering, a self-scheduled reminder engine, and export are
|
|
> built and unit-tested. The Material 3 Expressive screens are being built on
|
|
> top, one at a time — the storage-mode picker and export screen are not there
|
|
> yet. See [`docs/ROADMAP.md`](docs/ROADMAP.md) for status,
|
|
> [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for how it's built, and
|
|
> [`docs/STORAGE-AND-SYNC.md`](docs/STORAGE-AND-SYNC.md) for why storage works
|
|
> the way it does.
|
|
|
|
## Sync sources (by design)
|
|
|
|
In external-provider mode Agendula works with anything that writes to that provider —
|
|
**DAVx5** (CalDAV), **SmoothSync**, **CalDAV-Sync**, **DecSync CC**, or any
|
|
Android sync adapter — because it builds on the provider, not on any one sync
|
|
app. Google Tasks / Microsoft To Do are out of scope by design (proprietary; they
|
|
would mean owning a sync stack). Open standards — CalDAV / iCalendar / DecSync —
|
|
are the lane.
|
|
|
|
## Translations
|
|
|
|
Agendula ships in English so far, and would like not to. Translations are
|
|
managed on a self-hosted **Weblate**, and partial ones are fine — an
|
|
untranslated string simply falls back to English.
|
|
|
|
**→ [Help translate Agendula](https://weblate.dev.jeanlucmakiola.de/engage/agendula/)**
|
|
|
|
No coding needed: register on the Weblate server, pick (or request) a language,
|
|
and translate the strings in your browser. You can also reach this link in the
|
|
app from the top of **Settings → App language**.
|
|
|
|
## Privacy
|
|
|
|
No servers, no account, no analytics, no advertising, no tracking, no
|
|
third-party SDK. Your tasks stay on your device unless you add a CalDAV account
|
|
yourself, and then they go only to the server you chose — never to the
|
|
developer.
|
|
|
|
**→ [Privacy policy](https://jeanlucmakiola.de/agendula/privacy)**
|
|
|
|
## License
|
|
|
|
MIT — see [LICENSE](LICENSE).
|