|
1 | | -# KashCal |
| 1 | +# KashCal Website |
2 | 2 |
|
3 | | -**Your calendar. Your device. Your rules.** |
| 3 | +Source for [kashcal.github.io](https://kashcal.github.io) |
4 | 4 |
|
5 | | -[](https://github.com/KashCal/KashCal/actions/workflows/build.yml) |
6 | | -[](https://github.com/KashCal/KashCal/blob/main/LICENSE) |
7 | | -[](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. |
| 5 | +For app details, see the main repo: [KashCal/KashCal](https://github.com/KashCal/KashCal) |
103 | 6 |
|
104 | 7 | ## License |
105 | 8 |
|
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> |
| 9 | +Apache License 2.0 |
0 commit comments