All your calendars in one private app on Android.
Official Repository: This is the only official KashCal™ source. Only download from 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
Verify GitHub Release APKs with AppVerifier or Obtainium. F-Droid builds use F-Droid's own signing key.
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. No workaround needed.
- CalDAV: Nextcloud, Radicale, Baïkal, Stalwart, Purelymail, FastMail, Zoho, SOGo, and more. Native sync, no middleware.
- Device calendar: See events from your phone's built-in calendar alongside everything else.
- Holidays & schedules: Subscribe to any ICS calendar. Holidays, school schedules, sports seasons.
- Birthdays: Pulls from your contacts automatically.
- 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. Data is stored locally unless you explicitly set up sync.
- Fort Knox Mode: other apps have no access to your events
- Encrypted credentials via Android Keystore (AES-256-GCM)
- HTTPS only: cleartext traffic blocked
- 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. Effectively enables repeat-until-dismissed reminders (#178) | @SchrodingersCpp |
Built something that pairs with KashCal? Open an issue and we'll add it 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!
For Developers
| Category | Technology |
|---|---|
| CalDAV/ICS | iCalDAV |
| 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 17
- Android SDK 35
See CONTRIBUTING.md for guidelines.