Skip to content

Commit f33f77a

Browse files
committed
Add privacy policy page
1 parent ad4ce9c commit f33f77a

1 file changed

Lines changed: 264 additions & 0 deletions

File tree

privacy/index.html

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Privacy Policy - KashCal</title>
7+
<meta name="description" content="KashCal Privacy Policy. We do not collect any data. Your calendar stays on your device.">
8+
<meta name="author" content="OneKash Labs">
9+
<meta name="theme-color" content="#0a0a0f">
10+
11+
<link rel="canonical" href="https://kashcal.github.io/privacy">
12+
13+
<meta property="og:type" content="website">
14+
<meta property="og:url" content="https://kashcal.github.io/privacy">
15+
<meta property="og:title" content="Privacy Policy - KashCal">
16+
<meta property="og:description" content="KashCal Privacy Policy. We do not collect any data.">
17+
<meta property="og:image" content="https://kashcal.github.io/icon-192.png">
18+
19+
<link rel="icon" type="image/png" href="favicon.png">
20+
<link rel="icon" type="image/png" sizes="192x192" href="icon-192.png">
21+
<link rel="apple-touch-icon" href="icon-192.png">
22+
<link rel="preconnect" href="https://fonts.googleapis.com">
23+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
24+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
25+
<style>
26+
:root {
27+
--bg-dark: #0a0a0f;
28+
--text-primary: #ffffff;
29+
--text-secondary: rgba(255, 255, 255, 0.7);
30+
--text-muted: rgba(255, 255, 255, 0.4);
31+
--glass-bg: rgba(255, 255, 255, 0.05);
32+
--glass-border: rgba(255, 255, 255, 0.1);
33+
--accent: #7c5cff;
34+
}
35+
36+
* {
37+
margin: 0;
38+
padding: 0;
39+
box-sizing: border-box;
40+
}
41+
42+
body {
43+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
44+
background: var(--bg-dark);
45+
color: var(--text-primary);
46+
line-height: 1.7;
47+
}
48+
49+
nav {
50+
position: fixed;
51+
top: 0;
52+
left: 0;
53+
right: 0;
54+
padding: 1rem 2rem;
55+
background: var(--glass-bg);
56+
-webkit-backdrop-filter: blur(20px);
57+
backdrop-filter: blur(20px);
58+
border-bottom: 1px solid var(--glass-border);
59+
z-index: 100;
60+
display: flex;
61+
justify-content: space-between;
62+
align-items: center;
63+
}
64+
65+
.logo {
66+
font-size: 1.5rem;
67+
font-weight: 700;
68+
color: var(--text-primary);
69+
text-decoration: none;
70+
display: flex;
71+
align-items: center;
72+
gap: 0.5rem;
73+
}
74+
75+
.logo-icon {
76+
width: 32px;
77+
height: 32px;
78+
border-radius: 8px;
79+
}
80+
81+
.nav-links a {
82+
color: var(--text-secondary);
83+
text-decoration: none;
84+
font-size: 0.9rem;
85+
transition: color 0.2s;
86+
}
87+
88+
.nav-links a:hover {
89+
color: var(--text-primary);
90+
}
91+
92+
main {
93+
max-width: 800px;
94+
margin: 0 auto;
95+
padding: 8rem 2rem 4rem;
96+
}
97+
98+
h1 {
99+
font-size: 2.5rem;
100+
font-weight: 700;
101+
margin-bottom: 0.5rem;
102+
}
103+
104+
.effective-date {
105+
color: var(--text-muted);
106+
font-size: 0.9rem;
107+
margin-bottom: 3rem;
108+
}
109+
110+
h2 {
111+
font-size: 1.4rem;
112+
font-weight: 600;
113+
margin-top: 2.5rem;
114+
margin-bottom: 1rem;
115+
color: var(--text-primary);
116+
}
117+
118+
p {
119+
color: var(--text-secondary);
120+
margin-bottom: 1rem;
121+
}
122+
123+
strong {
124+
color: var(--text-primary);
125+
}
126+
127+
ul {
128+
color: var(--text-secondary);
129+
margin-left: 1.5rem;
130+
margin-bottom: 1rem;
131+
}
132+
133+
li {
134+
margin-bottom: 0.5rem;
135+
}
136+
137+
a {
138+
color: var(--accent);
139+
text-decoration: none;
140+
}
141+
142+
a:hover {
143+
text-decoration: underline;
144+
}
145+
146+
footer {
147+
padding: 3rem 2rem;
148+
border-top: 1px solid var(--glass-border);
149+
text-align: center;
150+
}
151+
152+
.footer-links {
153+
display: flex;
154+
gap: 2rem;
155+
justify-content: center;
156+
margin-bottom: 1.5rem;
157+
flex-wrap: wrap;
158+
}
159+
160+
.footer-links a {
161+
color: var(--text-secondary);
162+
font-size: 0.9rem;
163+
}
164+
165+
.footer-note {
166+
color: var(--text-muted);
167+
font-size: 0.85rem;
168+
}
169+
170+
@media (max-width: 768px) {
171+
nav {
172+
padding: 1rem 1.5rem;
173+
}
174+
175+
main {
176+
padding: 6rem 1.5rem 3rem;
177+
}
178+
179+
h1 {
180+
font-size: 2rem;
181+
}
182+
}
183+
</style>
184+
</head>
185+
<body>
186+
<nav>
187+
<a href="/" class="logo">
188+
<img src="favicon.png" alt="KashCal" class="logo-icon">
189+
KashCal
190+
</a>
191+
<div class="nav-links">
192+
<a href="/">Home</a>
193+
</div>
194+
</nav>
195+
196+
<main>
197+
<h1>Privacy Policy</h1>
198+
<p class="effective-date">Effective date: January 31, 2026</p>
199+
200+
<h2>Overview</h2>
201+
<p>KashCal is a calendar app that stores your data locally on your device. We do not operate servers that collect your data. We do not use analytics, advertising, or tracking of any kind.</p>
202+
203+
<h2>Data Collection and Storage</h2>
204+
<p><strong>We do not collect any data.</strong> All information you enter into KashCal is stored locally on your device.</p>
205+
<p>Locally stored data includes:</p>
206+
<ul>
207+
<li>Calendar events and reminders</li>
208+
<li>App preferences and settings</li>
209+
<li>Sync account credentials (encrypted)</li>
210+
<li>Sync logs for troubleshooting</li>
211+
</ul>
212+
213+
<h2>Calendar Sync</h2>
214+
<p>If you enable CalDAV sync (iCloud, Nextcloud, or other providers), your calendar data is transmitted directly between your device and the server you configure. This data is sent over encrypted HTTPS connections. KashCal does not intermediate or access this data.</p>
215+
<p>Your use of third-party sync services is governed by their privacy policies.</p>
216+
217+
<h2>ICS Subscriptions</h2>
218+
<p>When you subscribe to external calendar feeds, KashCal fetches data directly from the URLs you provide. No data passes through our servers.</p>
219+
220+
<h2>Contact Birthdays</h2>
221+
<p>With your permission, KashCal can read birthday dates from your contacts to display on your calendar. This data is processed entirely on your device and is never transmitted.</p>
222+
223+
<h2>Permissions</h2>
224+
<ul>
225+
<li><strong>Internet:</strong> Required for calendar sync and ICS feeds</li>
226+
<li><strong>Notifications:</strong> Required for event reminders</li>
227+
<li><strong>Exact Alarms:</strong> Required for precise reminder scheduling</li>
228+
<li><strong>Contacts (optional):</strong> Required only if you enable contact birthdays</li>
229+
</ul>
230+
231+
<h2>Data Security</h2>
232+
<p>Account credentials are encrypted using AES-256-GCM via Android Keystore. All network connections use HTTPS. Credentials are excluded from device backups.</p>
233+
234+
<h2>Data Sharing</h2>
235+
<p>We do not share your data with anyone. We have no data to share because we do not collect it.</p>
236+
237+
<h2>Data Deletion</h2>
238+
<p>You can delete your data at any time by:</p>
239+
<ul>
240+
<li>Deleting individual events</li>
241+
<li>Removing sync accounts</li>
242+
<li>Uninstalling the app</li>
243+
</ul>
244+
245+
<h2>Children's Privacy</h2>
246+
<p>KashCal is not directed at children under 13 and does not knowingly collect data from children.</p>
247+
248+
<h2>Changes</h2>
249+
<p>Updates to this policy will be noted in app release notes. Continued use of the app constitutes acceptance of changes.</p>
250+
251+
<h2>Contact</h2>
252+
<p>Questions or concerns: <a href="https://github.com/KashCal/KashCal/issues">GitHub Issues</a></p>
253+
</main>
254+
255+
<footer>
256+
<div class="footer-links">
257+
<a href="/">Home</a>
258+
<a href="https://github.com/KashCal/KashCal">Source Code</a>
259+
<a href="https://github.com/KashCal/KashCal/issues">Report Issue</a>
260+
</div>
261+
<p class="footer-note">© 2026 KashCal · No data collected. Ever.</p>
262+
</footer>
263+
</body>
264+
</html>

0 commit comments

Comments
 (0)