All your calendars in one private app on Android.
Also on IzzyOnDroid, Obtainium, or GitHub Releases.
Official Repository: This is the only official KashCal™ source. Only download from Google Play, F-Droid, IzzyOnDroid, GitHub Releases, or via Obtainium. Beware of copies distributing APKs from other sources.
APK Signing Certificate (SHA-256):
B0:47:6C:12:88:28:BE:04:7B:64:FE:43:F7:9B:1D:5F:2C:34:60:B0:72:6F:B3:99:33:B1:16:20:D8:95:46:22
This certificate signs the GitHub Release, IzzyOnDroid, and Obtainium APKs. Verify them with AppVerifier or Obtainium. F-Droid builds carry F-Droid's own signing key and Google Play builds carry Google Play's app signing key, so their certificates differ.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Family stuff on iCloud. Holidays from some website. Birthdays buried in your contacts. Work on Nextcloud. KashCal brings them together on your Android. No account required, no analytics, no telemetry.
- iCloud: Switched to Android but your family is still on Apple? Sync with iCloud calendars directly.
- CalDAV: Nextcloud, Radicale, Baïkal, Stalwart, Purelymail, Fastmail, Zoho, SOGo, and more. Native sync, no middleware.
- Device calendar: See and edit events from your phone's built-in calendar alongside everything else.
- Holidays & schedules: Subscribe to any ICS calendar. Holidays, school schedules, sports seasons.
- Contacts: Two-way CardDAV contact sync, including photos.
- Birthdays and anniversaries: Turn them on and KashCal builds calendars from your contacts.
- Local: Don't need sync? Works fully offline out of the box.
Material You with dynamic theming. Home screen widgets. Full-text search across all events. Per-event timezone for travel.
No analytics, no tracking, no KashCal account required. Your data stays on the phone unless you set up sync.
- Fort Knox Mode: other apps have no access to your events
- Encrypted credentials via Android Keystore (AES-256-GCM)
- HTTPS by default: an account uses plain http only if you enter an http:// address, and an https account never falls back to http
- No WebViews: native UI only
- Minimal permissions: only what's necessary
- Fully auditable: open source codebase
Join the KashCal Signal group for discussion and chat with other users. Or scan the QR code:
Community-made add-ons that enhance KashCal features.
| Add-on | Description | Author |
|---|---|---|
| long-reminder-sounds | Notification sound files that keep alerting at intervals until you dismiss them, which gives repeat-until-dismissed reminders (#178) | @SchrodingersCpp |
Built something that pairs with KashCal? Open an issue to have it listed here.
| Provider | Status | Tested By |
|---|---|---|
| iCloud | ✓ | @one-kash |
| Nextcloud | ✓ | @one-kash @dev-inside |
| Baïkal | ✓ | @one-kash |
| Baïkal (Digest Auth) | ✓ | @englut |
| Radicale | ✓ | @one-kash |
| mailbox.org | ✓ | @h1nnak |
| Infomaniak | ✓ | @dirko-madrileno |
| Stalwart | ✓ | @OneCreek |
| Fastmail | ✓ | @mittensicle |
| Davis | ✓ | @Ivan-Roger |
| Purelymail | ✓ | @babyhuehnchen |
| Posteo | ✓ | @4nndee |
| Zoho | ✓ | @jopacy |
| SOGo | ✓ | @mdonz |
Found a CalDAV server that doesn't work? Let us know!
KashCal reads and edits your phone's built-in system calendar, so any app that syncs there works too: Google Calendar, Outlook (with Android calendar sync on), or an end-to-end-encrypted service like SilentSuite. Their events show up in KashCal, and you can create, edit, and delete them. KashCal writes to the device calendar, and each app syncs the changes back to its own server.
SilentSuite two-way sync was tested by @silent-suite. Using another app that syncs to your device calendar? Let us know!
For Developers
| Category | Technology |
|---|---|
| CalDAV/ICS | icaldav-core (in-tree, wraps ical4j 4.3.0) |
| CardDAV/contacts | vcard-core (in-tree, wraps ez-vcard 0.12.2) |
| UI | Jetpack Compose, Material 3 |
| Widgets | Jetpack Glance |
| Database | Room + FTS4 full-text search |
| Security | Android Keystore (AES-256-GCM) |
| DI | Hilt |
| Async | Kotlin Coroutines + Flow |
| Background | WorkManager |
| Network | OkHttp |
git clone https://github.com/KashCal/KashCal.git
cd KashCal
./gradlew assembleDebug- Android Studio (latest stable)
- JDK 21
- Android SDK 37 (compile and target)
- Runs on Android 12 (API 31) and up
See CONTRIBUTING.md for guidelines.














