Skip to content

Commit 6474207

Browse files
committed
Initial commit
0 parents  commit 6474207

11 files changed

Lines changed: 908 additions & 0 deletions

README.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# KashCal
2+
3+
**Your calendar. Your device. Your rules.**
4+
5+
[![Build](https://github.com/KashCal/KashCal/actions/workflows/build.yml/badge.svg)](https://github.com/KashCal/KashCal/actions/workflows/build.yml)
6+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/KashCal/KashCal/blob/main/LICENSE)
7+
[![Android](https://img.shields.io/badge/Android-8.0%2B-green.svg)](https://developer.android.com/about/versions/oreo)
8+
9+
A privacy-first calendar that works offline and looks beautiful. Connect to iCloud — or don't. Your schedule, your choice.
10+
11+
---
12+
13+
<table align="center">
14+
<tr>
15+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/HomePage-with-AboutMe.png" width="180"><br><sub>Home & Agenda</sub></td>
16+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/NewEvent.png" width="180"><br><sub>Create Event</sub></td>
17+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/NewEvent-Date-Time-Picker.png" width="180"><br><sub>Date & Time Picker</sub></td>
18+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/Settings.png" width="180"><br><sub>Settings</sub></td>
19+
</tr>
20+
<tr>
21+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/Apple-Calendar-Connect.png" width="180"><br><sub>iCloud Connect</sub></td>
22+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/Sync-with-iCloud.png" width="180"><br><sub>iCloud Sync</sub></td>
23+
<td align="center"><img src="https://raw.githubusercontent.com/KashCal/KashCal/main/fastlane/metadata/android/en-US/images/phoneScreenshots/ICS-Subscription.png" width="180"><br><sub>ICS Subscriptions</sub></td>
24+
<td></td>
25+
</tr>
26+
</table>
27+
28+
---
29+
30+
## Why KashCal?
31+
32+
| | KashCal | Others |
33+
|---|---------|--------|
34+
| Analytics | None | Often |
35+
| Account Required | No | Usually |
36+
| Works Offline | Full | Limited |
37+
| Open Source | Yes | Rarely |
38+
| iCloud on Android | Yes | Rare |
39+
40+
## Features
41+
42+
- **Privacy-First** — Zero analytics, zero tracking. Your schedule stays private.
43+
- **Offline-First** — Works without internet. Sync when you want, not when the app wants.
44+
- **iCloud Sync** — Native CalDAV support for Apple Calendar on Android.
45+
- **Material You** — Beautiful, modern design with dynamic theming.
46+
- **Home Widget** — Today's agenda at a glance.
47+
- **Recurring Events** — Full RFC 5545 RRULE support with exceptions.
48+
- **Progressive Sync** — Events appear in 2-5 seconds, not 30.
49+
- **Search** — Full-text search across all your events.
50+
- **Timezone Support** — Per-event timezone with smart display.
51+
52+
## How It Works
53+
54+
```
55+
User Action → Local DB (instant) → Background Sync (only if using iCloud)
56+
```
57+
58+
All operations save locally first. Sync happens in the background — your calendar works even without internet or any external calendar service.
59+
60+
## Security & Privacy
61+
62+
### Your Data Stays Yours
63+
- **No Analytics** — Zero tracking, telemetry, or data collection
64+
- **No Accounts** — No KashCal account required
65+
- **Local-First** — Calendar data stored on your device
66+
- **Open Source** — Fully auditable codebase
67+
68+
### Secure by Design
69+
- **Encrypted Credentials** — AES-256-GCM via Android Keystore
70+
- **HTTPS Only** — Cleartext traffic blocked
71+
- **No WebViews** — Native UI only, no embedded browsers
72+
- **Minimal Permissions** — Only what's necessary
73+
74+
## Download
75+
76+
**[GitHub Releases](https://github.com/KashCal/KashCal/releases)** — Download the latest APK
77+
78+
**F-Droid** — Coming soon
79+
80+
**IzzyOnDroid** — Coming soon
81+
82+
## iCloud Setup
83+
84+
1. Go to [appleid.apple.com](https://appleid.apple.com)
85+
2. Sign in → **Sign-In and Security****App-Specific Passwords**
86+
3. Generate a password named "KashCal"
87+
4. In KashCal: **Settings****iCloud Account** → Enter email and app-specific password
88+
89+
## Tech Stack
90+
91+
- **UI**: Jetpack Compose + Material 3
92+
- **Widget**: Jetpack Glance
93+
- **DI**: Hilt
94+
- **Database**: Room
95+
- **Async**: Kotlin Coroutines + Flow
96+
- **Background**: WorkManager
97+
- **Network**: OkHttp
98+
- **iCal**: ical4j + lib-recur
99+
100+
## Contributing
101+
102+
See [CONTRIBUTING.md](https://github.com/KashCal/KashCal/blob/main/CONTRIBUTING.md) for guidelines.
103+
104+
## License
105+
106+
Apache License 2.0 — see [LICENSE](https://github.com/KashCal/KashCal/blob/main/LICENSE)
107+
108+
---
109+
110+
<p align="center">
111+
<b>KashCal</b><br>
112+
Your calendar. Your privacy. Your control.
113+
</p>

favicon.png

6.72 KB
Loading

icon-192.png

25.4 KB
Loading
171 KB
Loading

images/ICS-Subscription.png

133 KB
Loading

images/KashCal-Home.png

158 KB
Loading

images/KashCal-UI.png

151 KB
Loading

0 commit comments

Comments
 (0)