Skip to content

Commit ebdf558

Browse files
committed
website update
1 parent 42b5066 commit ebdf558

8 files changed

Lines changed: 477 additions & 16 deletions

File tree

blog/2026-06-30-kashcal-challenge.md

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,39 @@
11
---
22
slug: kashcal-challenge
3-
title: My calendar can do this. Can yours?
3+
title: 'My calendar can do this. Can yours?'
44
authors: [kashcal]
5-
tags: [announcements]
6-
description: Take the KashCal Challenge. Post the one thing your calendar does that others can't, tag #KashCal, and dare a friend.
5+
tags: [announcements, features]
6+
keywords:
7+
- best android calendar app
8+
- free calendar app android
9+
- open source calendar android
10+
- google calendar alternative
11+
- icloud calendar on android
12+
- caldav calendar app
13+
description: The free, open-source things KashCal does that most Android calendar apps charge for or skip. Take the KashCal Challenge, tag #KashCal, and dare a friend.
14+
image: /img/social/home.png
715
---
816

917
A handful of things KashCal does that most calendar apps charge for, bury, or skip.
1018
All free, no account. Show off the one you like and dare a friend to match it.
1119

1220
{/* truncate */}
1321

22+
<div align="center" style={{display: 'flex', gap: '0.9rem', justifyContent: 'center', flexWrap: 'wrap', margin: '2rem 0'}}>
23+
<img src="/img/screenshots/Quick-Event-Add.png" alt="KashCal Quick Add turning plain text into an event" width="200" style={{borderRadius: '14px', boxShadow: '0 14px 34px -18px rgba(0,0,0,0.5)'}} />
24+
<img src="/img/screenshots/Insights.png" alt="KashCal Insights showing on-device time analytics" width="200" style={{borderRadius: '14px', boxShadow: '0 14px 34px -18px rgba(0,0,0,0.5)'}} />
25+
<img src="/img/screenshots/Apple-Calendar-Connect.png" alt="KashCal connecting an iCloud calendar on Android" width="200" style={{borderRadius: '14px', boxShadow: '0 14px 34px -18px rgba(0,0,0,0.5)'}} />
26+
</div>
27+
1428
## The list
1529

1630
- **A new event from Quick Settings.** Drop a KashCal tile next to your flashlight and Wi-Fi toggles. Pull down from the top of the screen, tap it, and you're typing a new event, even over whatever app you were in. The fastest way to catch a plan before it slips.
17-
- **Plain-language events.** Type "Yoga every Tuesday 7am at the studio" and it becomes a real recurring event, with the time, the place, the repeat, and the title each landing where they belong.
18-
- **Share an event as a card.** One tap turns any event into a designed card and a tap-to-add file, sent together in any chat. Your friend taps once to drop it on their own calendar. No screenshots to retype, no invite that drags in extra apps.
19-
- **Real CalDAV, out of the box.** Nextcloud, Radicale, Fastmail, Baikal, Zoho, SOGo, Stalwart, and more, syncing two ways with no middleware app, no relay server, and no second thing to install. Your phone's Google and Outlook calendars ride along too.
20-
- **iCloud on Android.** Sign in once and your iCloud calendars sync both ways, shared family calendars included. No bridge, no export-import dance.
21-
- **Time insights, on-device.** Busiest day, meeting-free days, weekend load, your next free block. It works the numbers out on your phone, no work account and no cloud crunching your schedule.
22-
- **Six views, your way.** Month, agenda, three-day, week, month-full, and year. Pinch to zoom, drag to reschedule, and color any event from a curated palette or the full color wheel.
31+
- **[Plain-language events.](/docs/events/quick-add)** Type "Yoga every Tuesday 7am at the studio" and it becomes a real recurring event, with the time, the place, the repeat, and the title each landing where they belong.
32+
- **[Share an event as a card.](/features/share-event-as-card-android)** One tap turns any event into a designed card and a tap-to-add file, sent together in any chat. Your friend taps once to drop it on their own calendar. No screenshots to retype, no invite that drags in extra apps.
33+
- **[Real CalDAV, out of the box.](/features/all-your-calendars-google-outlook-android)** Nextcloud, Radicale, Fastmail, Baikal, Zoho, SOGo, Stalwart, and more, syncing two ways with no middleware app, no relay server, and no second thing to install. Your phone's Google and Outlook calendars ride along too.
34+
- **[iCloud on Android.](/features/icloud-calendar-android)** Sign in once and your iCloud calendars sync both ways, shared family calendars included. No bridge, no export-import dance.
35+
- **[Time insights, on-device.](/features/calendar-insights-android)** Busiest day, meeting-free days, weekend load, your next free block. It works the numbers out on your phone, no work account and no cloud crunching your schedule.
36+
- **[Six views, your way.](/features/beautiful-calendar-android)** Month, agenda, three-day, week, month-full, and year. Pinch to zoom, drag to reschedule, and color any event from a curated palette or the full color wheel.
2337
- **Private and free.** No KashCal account, ever. No ads, no trackers, no analytics. Credentials are encrypted with the Android Keystore, and the whole thing works offline from first install. Free and open source under Apache-2.0.
2438

2539
None of the above is a trial, a teaser, or a "pro" tier. It's the whole app. Found
@@ -44,3 +58,8 @@ match it.
4458
> Finally syncing my iPhone family calendar on Android with no middleman. #KashCal
4559
4660
> Found an Android calendar with real CalDAV out of the box, on-device time insights, and a 92-color wheel. No ads, no trackers, no paywall. #KashCal
61+
62+
<div align="center" style={{margin: '2rem 0'}}>
63+
<img src="/img/screenshots/ICS-Subscription.png" alt="KashCal color picker showing the named color peru, hex CD853F" width="220" style={{borderRadius: '14px', boxShadow: '0 14px 34px -18px rgba(0,0,0,0.5)'}} />
64+
<div style={{fontSize: '0.85rem', opacity: 0.7, marginTop: '0.6rem'}}>92 colors, each with a real name. Yes, "peru" is a color. We were as surprised as you.</div>
65+
</div>
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
slug: curtain-for-your-calendar
3+
title: 'App lock: a curtain for your calendar'
4+
authors: [kashcal]
5+
tags: [announcements, privacy]
6+
keywords:
7+
- app lock
8+
- lock calendar app
9+
- private calendar android
10+
- hide calendar
11+
- fingerprint lock calendar
12+
- password protect calendar android
13+
description: KashCal now has App lock. Hide your calendar behind your fingerprint, face, or PIN on Android, so it stops being everyone's business.
14+
image: /img/social/home.png
15+
---
16+
17+
Your calendar is the nosiest app on your phone. It knows about the dentist, the interview you told nobody about, and the event you just labeled "lunch??". It is a diary that schedules your life.
18+
19+
It is also the app that is wide open when you hand your unlocked phone to a friend to "just look at the photo."
20+
21+
KashCal now has **App lock**. Turn it on, and opening the app throws up a curtain.
22+
23+
{/* truncate */}
24+
25+
<div align="center" style={{margin: '2.5rem 0'}}>
26+
<div style={{
27+
display: 'flex',
28+
flexDirection: 'column',
29+
alignItems: 'center',
30+
width: '260px',
31+
height: '520px',
32+
padding: '3.5rem 1.5rem 2rem',
33+
borderRadius: '32px',
34+
border: '10px solid #05070a',
35+
background: 'radial-gradient(ellipse 80% 55% at 50% 32%, #1B2230, #11151D 60%, #0E1116)',
36+
color: '#eef3f1',
37+
boxShadow: '0 30px 60px -25px rgba(0,0,0,0.6)',
38+
}}>
39+
<div style={{
40+
width: '72px',
41+
height: '72px',
42+
borderRadius: '18px',
43+
background: '#0E1116',
44+
display: 'flex',
45+
alignItems: 'center',
46+
justifyContent: 'center',
47+
overflow: 'hidden',
48+
}}>
49+
<img src="/img/icon-transparent.png" alt="KashCal app icon" width="72" height="72" />
50+
</div>
51+
<div style={{fontWeight: 600, fontSize: '1.25rem', marginTop: '1.1rem'}}>KashCal</div>
52+
<div style={{display: 'flex', alignItems: 'center', gap: '0.35rem', opacity: 0.62, fontSize: '0.85rem', marginTop: '0.5rem'}}>
53+
<svg viewBox="0 -960 960 960" width="14" height="14" fill="currentColor" style={{display: 'block', flexShrink: 0, marginBottom: '2px'}} aria-hidden="true">
54+
<path d="M240-80q-33 0-56.5-23.5T160-160v-400q0-33 23.5-56.5T240-640h40v-80q0-83 58.5-141.5T480-920q83 0 141.5 58.5T680-720v80h40q33 0 56.5 23.5T800-560v400q0 33-23.5 56.5T720-80H240Zm240-200q33 0 56.5-23.5T560-360q0-33-23.5-56.5T480-440q-33 0-56.5 23.5T400-360q0 33 23.5 56.5T480-280ZM360-640h240v-80q0-50-35-85t-85-35q-50 0-85 35t-35 85v80Z" />
55+
</svg>
56+
<span>Locked</span>
57+
</div>
58+
<div style={{flex: 1}}></div>
59+
<div style={{
60+
display: 'inline-flex',
61+
alignItems: 'center',
62+
justifyContent: 'center',
63+
gap: '0.5rem',
64+
padding: '0.6rem 1.8rem',
65+
borderRadius: '999px',
66+
background: '#3a4a63',
67+
color: '#eef3f1',
68+
fontWeight: 600,
69+
fontSize: '0.9rem',
70+
}}>
71+
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" style={{display: 'block', flexShrink: 0, marginBottom: '1px'}} aria-hidden="true">
72+
<path d="M2 12C2 6.5 6.5 2 12 2a10 10 0 0 1 8 4" />
73+
<path d="M5 19.5C5.5 18 6 15 6 12c0-.7.12-1.37.34-2" />
74+
<path d="M17.29 21.02c.12-.6.43-2.3.5-3.02" />
75+
<path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" />
76+
<path d="M8.65 22c.21-.66.45-1.32.57-2" />
77+
<path d="M14 13.12c0 2.38 0 6.38-1 8.88" />
78+
<path d="M2 16h.01" />
79+
<path d="M21.8 16c.2-2 .131-5.354 0-6" />
80+
<path d="M9 6.8a6 6 0 0 1 9 5.2c0 .47 0 1.17-.02 2" />
81+
</svg>
82+
<span>Unlock</span>
83+
</div>
84+
</div>
85+
</div>
86+
87+
Flip it on in Settings and your next open is a lock screen, not your week. Unlock with **fingerprint, face, or your PIN**. No new password to invent, no "please create a 6 digit KashCal code." Your phone already knows how to check it is you. We just ask it to.
88+
89+
It is one more way KashCal stays [private by default](/docs/privacy/overview): no account, no trackers, and now a lock on the door. [Here is how App lock works](/docs/features/app-lock).
90+
91+
New here? [Get KashCal free on F-Droid](https://f-droid.org/packages/org.onekash.kashcal/). No account, no ads, open source.
92+
93+
Your calendar. Your eyes only.

blog/authors.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,2 @@
11
kashcal:
2-
name: KashCal Team
3-
title: OneKash Labs
4-
url: https://github.com/KashCal
5-
image_url: https://github.com/KashCal.png
6-
page: true
7-
socials:
8-
github: KashCal
2+
name: Kash

blog/tags.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,8 @@ behind-the-scenes:
1717
label: Behind the scenes
1818
permalink: /behind-the-scenes
1919
description: How KashCal is built
20+
21+
privacy:
22+
label: Privacy
23+
permalink: /privacy
24+
description: Privacy and security in KashCal

docusaurus.config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ const config: Config = {
216216
},
217217
{to: '/features', label: 'Features', position: 'left'},
218218
{to: '/blog', label: 'Blog', position: 'left'},
219+
{to: '/community', label: 'Community', position: 'left'},
219220
{to: '/work-with-us', label: 'Work with us', position: 'left'},
220221
{to: '/donate', label: 'Donate', position: 'left'},
221222
{
@@ -228,6 +229,13 @@ const config: Config = {
228229
label: 'GitHub',
229230
position: 'right',
230231
},
232+
{
233+
href: 'https://kashcal.onekash.org/blog/rss.xml',
234+
position: 'right',
235+
className: 'navbar-rss-link',
236+
'aria-label': 'Subscribe to the blog via RSS',
237+
title: 'Subscribe via RSS',
238+
},
231239
],
232240
},
233241
footer: {
@@ -240,6 +248,7 @@ const config: Config = {
240248
{label: 'Docs', to: '/docs'},
241249
{label: 'Features', to: '/features'},
242250
{label: 'Blog', to: '/blog'},
251+
{label: 'Community', to: '/community'},
243252
{label: 'Privacy', to: '/docs/privacy/overview'},
244253
{label: 'Donate', to: '/donate'},
245254
{label: 'Work with us', to: '/work-with-us'},

src/css/custom.css

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,3 +718,32 @@ button:focus-visible,
718718
.kc-privacy a:focus-visible {
719719
outline-color: #fbfcfb;
720720
}
721+
722+
/* ----------------------------------------------------------------------- */
723+
/* Navbar RSS link (icon-only, like the GitHub/F-Droid items) */
724+
/* ----------------------------------------------------------------------- */
725+
726+
.navbar-rss-link {
727+
font-size: 0;
728+
padding: var(--ifm-navbar-item-padding-vertical) 0.75rem;
729+
display: flex;
730+
align-items: center;
731+
}
732+
733+
.navbar-rss-link::before {
734+
content: '';
735+
width: 20px;
736+
height: 20px;
737+
display: block;
738+
background-color: var(--ifm-navbar-link-color);
739+
transition: background-color var(--ifm-transition-fast);
740+
/* Standard RSS glyph, inlined as a mask so it inherits the link color. */
741+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6.18 17.82a2.18 2.18 0 1 0 0 4.36 2.18 2.18 0 0 0 0-4.36zM4 10.1v3.02a7.86 7.86 0 0 1 7.88 7.88h3.02A10.88 10.88 0 0 0 4 10.1zm0-5.66v3.03A15.32 15.32 0 0 1 19.53 21h3.03A18.35 18.35 0 0 0 4 4.44z'/%3E%3C/svg%3E");
742+
mask-repeat: no-repeat;
743+
mask-position: center;
744+
mask-size: contain;
745+
}
746+
747+
.navbar-rss-link:hover::before {
748+
background-color: var(--ifm-navbar-link-hover-color);
749+
}

0 commit comments

Comments
 (0)