All your calendars on Android
Family stuff on iCloud. Work on Outlook. A side project on Google. Holidays from a website. School pickups from a PTA feed. KashCal puts them all on one Android phone.

Four ways calendars get in
No single protocol covers every calendar people use. Apple speaks one language, Microsoft another, Google has its own, and schools and sports leagues hand out plain feeds. KashCal takes four kinds of calendar sources, so all of them fit in one app.
Once a source is connected, its events show up in the same month, week, agenda, and day views as everything else. To hide a calendar, uncheck it in the navigation drawer.
iCloud vs other CalDAV servers
iCloud uses CalDAV, so it's in the same family as Nextcloud, Fastmail and the rest. Apple does a few things its own way, so iCloud has its own setup path:
- Your regular Apple ID password doesn't work with third-party apps. Apple requires an app-specific password from account.apple.com. Other servers take your account password, or an app password if the server asks for one.
- You don't type a server URL. KashCal finds your calendars after you sign in.
- Family Sharing calendars come with their own permission rules.
For Nextcloud, Fastmail, Radicale, and the others, open Settings, tap Calendar accounts, then Add CalDAV, and enter the server URL, username and password. The providers users have tested are listed in the README.
Why four, not one
Calendar protocols are fragmented, and the big vendors aren't in a hurry to fix that. The short version:
- Apple publishes a CalDAV endpoint for iCloud. KashCal connects directly.
- Microsoft doesn't expose CalDAV at all. It wants apps on its Graph API instead.
- Google has partial CalDAV but steers third-party apps to its REST API.
- Self-hosted and indie servers (Nextcloud, Radicale, Fastmail and others) speak CalDAV.
- Schools, sports leagues and holiday providers hand out a static ICS URL.
A separate integration for each vendor would mean shipping Microsoft Graph and Google Calendar API clients alongside CalDAV, with all the OAuth, token refresh and policy machinery that comes with them. The simpler path is to let Android keep those vendor accounts in sync and read from there. That's what device calendars are.
Where Microsoft and Google fit
If you have a Google or Outlook account, Android can sync it into the system calendar. Google accounts do this when calendar sync is on in Android's account settings. Outlook for Android has a Sync calendars toggle that puts Outlook events in the same place.
KashCal shows device calendars only after you turn them on:
- Open Settings, then tap Device calendars.
- Turn on Enable and allow calendar access.
- Turn on each calendar you want to see.
KashCal users have reported pairing it with Google Calendar, Outlook for Android, Microsoft 365, and Samsung Calendar this way. Others subscribe to the published .ics URL from Outlook or Google as a one-way feed. Both work.
| Provider | How it gets in |
|---|---|
| iCloud | Direct CalDAV |
| Nextcloud, Fastmail, Radicale, others | Direct CalDAV |
| Google Calendar | Device calendar (Android sync) or ICS feed |
| Outlook / Microsoft 365 | Device calendar (Outlook for Android) or ICS feed |
| Holidays, schools, sports | ICS subscription |
What ICS feeds are good for
ICS subscriptions are one-way. You paste a URL, KashCal fetches it, and it refreshes once a day until you pick another interval in the feed's settings. The classic uses are holidays, school terms, sports seasons and conference schedules. Feeds are also a fallback for any calendar that publishes an .ics link, which includes most Outlook calendars and any Google Calendar you've made public.
For public holidays you don't need a URL. Open Calendar feeds (ICS) in Settings, tap Add holiday calendar, and pick your country.
When you open a webcal:// link with KashCal, it offers to subscribe to the feed. KashCal also opens .ics files and attachments to import their events, and it takes "Add to calendar" requests from other apps.
Recurring events with one-off changes (a cancelled occurrence here, a moved time there) work, including the kind of feeds Microsoft Exchange produces.
What device calendars do and don't bring with them
Android keeps the underlying account in sync (Google, Outlook and others), and KashCal reads what lands in Android's calendar database. To create or edit events on a device calendar, KashCal needs write access to your calendars. It asks for it when you turn on Enable. The account's own app syncs the change. A calendar the account marks read-only stays read-only. KashCal fires reminders for device calendar events. To stop them, open Settings, tap Device calendars, and turn off Reminders. Calendar colors come through if the vendor sets them.
If two of your device calendars look alike in KashCal, change the calendar color at the source. Google Calendar writes the new color into Android within minutes and KashCal picks it up. Some accounts (Outlook is a common example) don't write a color at all, so there's nothing for KashCal to inherit.
For per-event color, KashCal has its own 92-color picker that overrides the calendar's color. Handy when one event needs to stand out without recoloring the whole calendar.
And one more: birthdays from your contacts
The four sources above cover calendars. Birthdays and anniversaries tend to live in your contacts, not on a calendar. KashCal reads birth dates and anniversaries from Android's contacts and shows them as yearly all-day events alongside everything else.
To turn them on, open Settings, tap Birthdays & anniversaries, turn on Contact Birthdays or Contact Anniversaries, and allow contacts access. Each gets its own calendar in the drawer. Add a birthday to a contact and it appears on the right day every year.
How it stays private
There's no KashCal server. iCloud and CalDAV traffic goes from your phone to your server, over HTTPS unless you type an http:// address. ICS feeds, holiday calendars included, are fetched straight from your phone. KashCal doesn't sync device calendar events itself: Android and the account's own app do. The passwords you enter are encrypted with the Android Keystore (AES-256-GCM) and excluded from device backups. Full details, including what Android backup saves, are on the privacy page.
Where to start
Pick whichever fits your setup:
- iPhone family, Android phone: connect iCloud directly.
- Nextcloud, Fastmail, or another self-hosted or indie provider: open Settings, tap Calendar accounts, then Add CalDAV.
- Google Calendar or Google Workspace: sign your Google account into Android with calendar sync on, then turn on its calendars under Device calendars.
- Outlook or Microsoft 365: install Outlook for Android and turn on Sync calendars, then turn on its calendars under Device calendars. Or paste the published
.icsURL as a feed. - Public holidays: open Calendar feeds (ICS) in Settings, tap Add holiday calendar, and pick your country.
- School, sports, conference schedule: grab the ICS link from the source and add it as a feed.
- Birthdays and anniversaries: turn them on under Birthdays & anniversaries. KashCal reads them from your contacts.
Add as many as you want. Show or hide any calendar from the navigation drawer.
Common questions
Can KashCal show my Google Calendar on Android?
Yes. Add your Google account in Android's system settings and let it sync. Then open KashCal Settings, tap Device calendars, turn on Enable, allow calendar access and turn on the calendars you want. Your Google events show up alongside everything else, in the colors set in Google Calendar.
Does KashCal sync with Outlook?
Indirectly. Microsoft doesn't publish a CalDAV endpoint. Install Outlook for Android and turn on Sync calendars in its settings, then turn on those calendars under Device calendars in KashCal Settings. You can also subscribe to an Outlook .ics share link as an ICS feed.
What is the difference between CalDAV, ICS, and device calendars?
CalDAV is two-way sync over an open standard. ICS is a one-way subscription to a calendar URL that refreshes on a schedule. Device calendars are accounts already set up on your Android phone, like Google or Outlook. Android keeps them in sync, and KashCal shows the ones you turn on. Each one fills a gap the others don't.
Why four different sources instead of one?
Because calendar protocols are fragmented. Apple speaks CalDAV. Microsoft only opens its Graph API. Google has partial CalDAV but steers developers to its REST API. ICS feeds cover everything else, from school terms to sports seasons. Four sources is what it takes to cover the real world.
Will calendars from different sources show up together?
Yes. iCloud, CalDAV, ICS, and device calendar events appear in the same month, agenda, week, and day views. Uncheck any calendar in the navigation drawer to hide it.
Where do birthdays and anniversaries come from?
From your phone's contacts. Open Settings, tap Birthdays & anniversaries, turn on Contact Birthdays or Contact Anniversaries and allow contacts access. KashCal turns each date into a yearly all-day event on its own calendar.