Skip to content
one-kash edited this page May 15, 2026 · 1 revision

Frequently Asked Questions

About the project

Why did you create KashCal?

I created KashCal for personal use with iCloud calendar when moving from iPhone to Android. At some point we thought there might be other folks with a similar need and decided to open source it along with a few distribution channels. Since then we have expanded to several CalDAV servers and Device Calendar as well.

Is KashCal really free?

Yes. KashCal is a fully featured personal calendar available for free via several distribution channels including F-Droid. The code is open source under Apache License 2.0.

If you find KashCal beneficial, you can donate here.

What are other ways to contribute?

There are several ways: helping with documentation, reviewing language translations, or filing PRs for issues and feature requests. See the Code of Conduct and Contribution guidelines.

How do I report a bug?

Please open an issue here with detailed notes.

Can I request a new feature or enhancement?

Yes. Also see our note on feature requests.

I have a question, idea, or discussion topic. Where can I post it?

Use GitHub Discussions for things that are not bug reports or feature requests.

How do I report a security vulnerability?

Please use GitHub Security Advisories to report vulnerabilities privately. Review our security policy.

Is there a public roadmap?

Here it is.

I don't like how KashCal does something, or I want a feature that can't be implemented.

You can always implement new features and open a pull request. Start a discussion first before building something major. You are also welcome to fork the repository and customize KashCal for yourself.

Built something that pairs with KashCal?

Open an issue and we'll add it to the README.


Installing and updating

Where should I get the app?

KashCal on GitHub is the official repository. You can download from:

What Android version do I need?

Android 12 (API 31) or later. KashCal targets API 36 and supports adaptive layouts on tablets and foldables.

Is KashCal on the Google Play Store?

Not yet. See this note if you'd like to help.

Why do F-Droid and GitHub APKs have different signatures?

F-Droid signs builds with its own key. GitHub Releases use the upstream key (cert SHA-256 published in the README). The two signatures are not interchangeable, so you cannot install one over the other. To switch sources, uninstall first. Uninstalling removes local-only data, so export your settings and any local events as ICS before switching.

How do I verify the GitHub APK signature?

Use AppVerifier or Obtainium with the cert SHA-256 published in the README.


Privacy and security

Is KashCal a private calendar?

Private by default. Read more here, and see the note about device calendars below.

Where is my data stored, and what happens if I uninstall?

Events, settings, and ICS subscriptions live in a local Room database on your device. CalDAV and iCloud credentials are encrypted in the Android Keystore (AES-256-GCM). Uninstalling KashCal clears all local data. Events that exist on a CalDAV server or iCloud remain on the server.

What permissions does KashCal request and why?

  • Internet and network state: sync with CalDAV servers and refresh ICS subscriptions
  • Read/write calendar: Device Calendar integration (optional)
  • Read contacts: birthdays and anniversaries (optional)
  • Post notifications, use exact alarm: event reminders
  • Foreground service (data sync): background CalDAV sync
  • Receive boot completed: reschedule reminders after a reboot

Does KashCal need internet?

Only for refreshing ICS subscriptions and syncing with CalDAV servers. Local events work fully offline. You can monitor traffic on your device with Rethink.


Sync and accounts

Do you have a list of supported CalDAV providers?

Any provider that supports CalDAV should work. See the verified list in the README.

Do I need a third-party app for calendar sync?

No. KashCal is a single app for both UI and CalDAV sync configuration.

Does iCloud need an app-specific password?

Yes. Generate one at appleid.apple.com under Sign-In and Security > App-Specific Passwords. Your main Apple ID password will not work.

Does KashCal sync with Google Calendar?

Not directly via CalDAV (Google removed third-party CalDAV access). Use the Device Calendar bridge instead: Google Calendar syncs to Android, and KashCal reads and writes those events through the Android Calendar Provider.

Does KashCal sync with Outlook or Microsoft 365?

Not directly. Outlook.com and Microsoft 365 do not expose CalDAV; they use Exchange ActiveSync or Microsoft Graph. Use the Device Calendar bridge: install the Microsoft Outlook Android app (or add the account via Android system Settings > Accounts), and KashCal will read and write those events through the Android Calendar Provider.

My CalDAV server uses a self-signed certificate or runs on plain HTTP. What do I do?

When adding the account, enable Trust insecure connection in the CalDAV sign-in sheet. This accepts self-signed certificates and lets KashCal connect to local HTTP servers (for example Baïkal or Radicale on your LAN). The toggle is per account; iCloud cannot use it. Only enable it for servers you control.

How often does KashCal sync, and can I change it?

Configurable via Settings > Sync. Background syncs run via WorkManager, and pull-to-refresh triggers an immediate sync. KashCal polls; there is no server push.

My events show up but reminders don't fire. What's wrong?

Aggressive battery optimizers on Samsung, Xiaomi, Oppo, OnePlus, and others can kill background work. Disable battery optimization for KashCal in Android Settings > Apps > KashCal > Battery. See dontkillmyapp.com for vendor-specific guidance.

Found a CalDAV server that doesn't work?

Let us know.

Can I use Syncthing instead of a CalDAV server?

Not at the moment. See related issues #67 and #99. You can export KashCal settings (which includes ICS subscriptions) and restore on another device. You can also export local events as ICS to import into KashCal or any other calendar app.

Does KashCal support CardDAV?

More info here.

Does KashCal support tasks (VTODO) or attachments?

No. KashCal is events-only (VEVENT). Calendars that contain only VTODO or VJOURNAL resources are skipped during sync.


Device calendars and contacts

What are device calendars and how do I use them?

Device calendars are Android's built-in calendars that any app with calendar permission can read or write. Google, Samsung, and Outlook all sync to the Android calendar provider. To see and edit those events in KashCal, enable the Device Calendars feature in Settings. It requires calendar read/write permission, and any other app with calendar access can also read those events. CalDAV calendars added inside KashCal stay private to KashCal.

Can KashCal import birthdays and anniversaries from contacts?

Yes. Enable Contact Birthdays or Contact Anniversaries in Settings. Requires Contacts permission.

Can KashCal pull custom events from contacts?

Not at this time. More info here.


Features and UI

What calendar views are available?

Six views: month, agenda, 3-day, week, month-full, and year. Switch via the top-left hamburger menu.

Is there an About page?

In the app, tap KashCal in the top bar (main event view), or scroll to the bottom of Settings and tap the version. Direct link.

How do I use Quick Event Add?

Just type what you want. No specific format is required. Examples:

  • Lunch with Sam tomorrow at 1pm
  • Dentist next Tuesday 3:30-4:30
  • Team standup every Monday at 9am
  • Flight to NYC Dec 15 6am at JFK
  • Coffee in 2 hours for 30 min
  • Gym every weekday 7am

What it understands:

  • Dates: tomorrow, next Friday, Dec 15, 12/15, in 3 days
  • Times: 3pm, 15:00, 9:30am, noon, midnight
  • Ranges: 3-5pm, 9am to 11am
  • Durations: for 30 min, for 2 hours
  • Recurrence: every Monday, every weekday, daily, weekly
  • Location: at the office, in NYC
  • Timezones when specified

Anything the parser doesn't claim as a date, time, or location becomes the event title. So Lunch with Sam tomorrow 1pm saves an event titled "Lunch with Sam" for tomorrow at 1:00 PM.

The parser shows a confidence value: HIGH (date and time found), MEDIUM (one of them found), or LOW (neither). An auto-matched emoji may also be added to the title.

Can I search across all my calendars?

Yes. Tap the search icon in the top bar. KashCal uses FTS4 full-text search and supports date-range filters (upcoming, custom range, and presets).

Are there home-screen widgets?

Yes. KashCal ships agenda, date, week, and month widgets, built with Jetpack Glance.

Does KashCal have launcher shortcuts?

Long-press the KashCal icon for New Event, Today, and Search.

Can I assign a color to a single event?

Yes. The event form's color picker offers a 15-color curated palette plus the full CSS3 92-color grid with a color wheel browser. Per-event color follows RFC 7986. Servers without COLOR support keep your locally chosen color on pull.

Can I change the first day of the week or time format?

Yes. Settings > Time Format and Settings > Start Week On.

Does KashCal support Material You and dynamic theming?

Yes, on Android 12 and later (which is the minimum supported version).

How do I edit or delete a recurring event?

KashCal asks how to apply the change:

  • Just this one or Just this occurrence: modifies a single instance
  • This and all future: modifies the current and future occurrences
  • All occurrences or All events: modifies the entire series

Drag-to-reschedule offers This event versus All events.

Where can I get an ICS subscription link?

KashCal does not ship a built-in holiday calendar because the variations are too many. Search online for an ICS feed. For example, this gist of Google holiday calendars or moon phases.

Can I move my data to a new device without a CalDAV server?

Yes. Use Settings > Backup & Restore to export preferences and ICS subscriptions to a JSON file. For local events themselves, export to ICS and import on the new device.


Translations

KashCal isn't translated to my language, or a translation looks wrong.

KashCal ships 67 languages. Open an issue, or send a PR against app/src/main/res/values-XX/strings.xml.


Troubleshooting

How can I provide logs for an issue I reported?

KashCal doesn't have built-in logging yet. See related issue #183. In the meantime, you can capture logs with Logcat Reader from F-Droid:

  1. Open Logcat Reader, then Filter, then set "Tag contains" to CalProviderRepo OR DisplayEventRepo OR CalProviderManager
  2. Start recording
  3. Open KashCal and reproduce the issue
  4. Stop recording, then Save or Share, and attach the file to your issue

Logcat Reader needs a one-time adb shell pm grant com.dp.logcatapp android.permission.READ_LOGS to see KashCal's logs. The app walks you through it.

Clone this wiki locally