Open-source project
Etar-Group/Etar-Calendar avatar
Etar-Group/Etar-Calendar

Etar Calendar: an open source Android calendar built on AOSP, with a caveat on ICS import

Android open source calendar

2,603 stars449 forksJavaGPL-3.0

At a glance

What is it?
Etar Calendar is a Material Design Android calendar forked from the AOSP Calendar, distributed on F-Droid and Google Play. It reads Android's calendar storage rather than syncing itself, which shapes both what it does well and what it cannot do.
Who is it for?
Etar Calendar fits Android users who want a local calendar store or who already sync through another app such as DAVx5, and who accept that ICS import is documented as unstable. Anyone who needs a built-in CalDAV client, a desktop client, or dependable invitation handling should look elsewhere.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 24, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap Etar Calendar fills on Android

Android ships with a calendar storage layer but not always with a calendar app the user wants. Etar Calendar is an open source client for that storage layer, written in Java and released under GPL-3.0. The README frames the motivation plainly: the author wanted a simple, Material Design, state of the art open source calendar that anyone can make better. The project is an enhanced version of the AOSP Calendar, and the README credits the Free Software for Android team and their Standalone-Calendar work as the foundation.

The intended user is someone on Android who wants either a phone-only calendar or a client for calendars that another app already syncs. It is not a service. There is no Etar account, no Etar server, and no web interface. Distribution is through F-Droid at the package name ws.xsoh.etar and through Google Play under the same identifier, with the F-Droid listing linked from the repository homepage.

That positioning matters more than the feature list. A calendar app that owns its own data has to solve sync, sharing and migration. Etar delegates all of that to Android's provider model.

How Etar Calendar works: Android calendar providers, not its own sync engine

The README gives a technical explanation that is worth reading before anything else. On Android there are calendar providers. A provider can be a calendar synchronized with a cloud service, or a local calendar, and in principle any app can provide one. Etar displays the calendars those providers expose, and the user chooses which ones to show and which one receives a new event.

This is why the app can show a Google calendar, a locally created offline calendar, and calendars written by other apps in the same interface. It is also why Etar has no sync code of its own. The documentation states that a CalDAV client is not included, and that syncing a CalDAV server requires another app such as DAVx5. The README's own reasoning is that hosting your own CalDAV server is the only way to keep full control of your data while still having one calendar usable from several devices.

The feature set follows from that architecture: month view, week, day and agenda views, dark and light themes, an agenda widget, multilingual UI, offline calendar support, and ICS import and export through the SD card. Permissions are split accordingly. READ_CALENDAR and WRITE_CALENDAR cover reading and creating events. READ_CONTACTS is optional and is queried the first time an appointment is created; the README notes it can be rejected, but then search and location suggestions stop working when adding guests.

Installing Etar Calendar and creating a first offline calendar

Most users will not build Etar. The README points to F-Droid and Google Play, and those are the two distribution channels it documents. There is no desktop package, so questions about a Windows or Linux build have no answer in the repository.

If you do want to build it, the README gives the following steps. Install and extract the Android SDK command line tools, then run sdkmanager for platform-tools, export ANDROID_HOME, and assemble the debug variant with Gradle.

bash
tools/bin/sdkmanager platform-tools
export ANDROID_HOME=/path/to/android-sdk/
gradle :app:assembleDebug

After installing, the first real use is the one the README describes under how to use Etar: create an offline calendar so events live on the phone only. You do that from within the app's calendar management, then add an event and select that calendar as its target. Nothing leaves the device until you install a sync provider.

If you want server sync instead, the README's instruction is to install a separate app such as DAVx5, configure the CalDAV account there, and then let Etar display the resulting provider calendar. Etar itself is not configured with server credentials at any point.

The ICS import warning is the real limitation

The README is unusually direct about a weak spot. It states that Etar can import ICS files, for instance from invitation emails, but that the import feature is unstable and has a list of known bugs, referring readers to pull request 653 for that list. It advises using it with caution, especially if your calendar provider automatically sends out invitation emails.

That last clause is the part to take seriously. On a provider that auto-sends invitations, a botched import can turn into outbound mail to other people, which is a social problem rather than a data problem. If your workflow depends on accepting invitations from email, Etar is the wrong tool as documented. Export and import via SD card is listed as a feature, but the README does not document rollback for a failed import, so there is no stated way to undo one.

A second boundary is sync. Because no CalDAV client is included, Etar cannot by itself reconcile a phone with a Nextcloud, Fastmail or self-hosted server. That is a deliberate division of labour, and it means Etar is a poor fit for someone who wants a single app that handles both display and server sync.

Etar Calendar compared with Fossify Calendar and Nextcloud Calendar

Fossify Calendar appears in the search results around Etar, and the two are close in spirit: both are open source Android calendar clients rather than services. The difference visible from Etar's side is lineage and scope. Etar is described as an enhanced AOSP Calendar, and its README explicitly delegates sync to other apps. Anyone choosing between them should compare what each bundles, because that is where the practical difference lies, not in the view types.

Nextcloud Calendar is a different kind of thing. It is a calendar inside a server product, reached through a browser or a client. Etar has no server component, so the comparison only makes sense if you already run Nextcloud and need an Android client. In that case you still need a CalDAV sync app, because Etar does not speak CalDAV. The README names DAVx5 as an example of the missing piece.

Google Calendar is the other reference point. Etar can display calendars that Google's provider writes to Android storage, so the two can coexist on one device. What Etar does not have is Google's invitation and sharing machinery, and given the ICS import caveat, that gap is not something to paper over.

Licence, maintenance and what an upgrade costs

Etar is licensed under GPL-3.0, with copyright lines for the Android Open Source Project from 2005 to 2013, Dominik Schürmann in 2013, and the Etar Project from 2015 onward. The repository also carries a LICENSE.apache2 file, and the README notes the GPLv3 applies except where otherwise noted. If you plan to redistribute Etar or ship a modified build, read both files rather than assuming a single licence covers the tree. This is a description of what the repository states, not legal advice.

The last push to the repository was on 2026-09-20, and the most recent releases listed are v1.0.57 on 2026-07-27, v1.0.56 on 2026-06-04 and v1.0.55 on 2026-04-20. The repository is not archived. That pattern suggests steady patch releases rather than a rewrite in progress.

Upgrade cost is mostly the cost of Android itself. Building from source means maintaining an Android SDK command line tools setup and an ANDROID_HOME pointing at it, as the README's build instructions show. Users installing from F-Droid or Google Play carry no build cost, but they inherit whatever the upstream AOSP Calendar lineage does with provider APIs across Android versions. The README does not document a migration path between major versions.

Editorial conclusion

Etar Calendar fits Android users who want a local calendar store or who already sync through another app such as DAVx5, and who accept that ICS import is documented as unstable. Anyone who needs a built-in CalDAV client, a desktop client, or dependable invitation handling should look elsewhere. Before adopting it, check the permissions it requests on first event creation and read the ICS import issue list at pull request 653.

Frequently asked questions

Does Etar Calendar work on Windows or Linux?

No. Etar is an Android application, and the repository documents only Android distribution through F-Droid and Google Play plus a Gradle build for the app module. There is no desktop client in the README.

How do I sync Etar Calendar with a CalDAV server?

Etar does not include a CalDAV client. The README says you need another app, giving DAVx5 as an example, and that Etar then displays the calendar provider that app creates.

Can Etar Calendar import ICS files?

It can, but the README states the import feature is unstable and has a list of known bugs, pointing to pull request 653. It advises caution, particularly if your calendar provider automatically sends invitation emails.

Why does Etar Calendar ask for contacts permission?

READ_CONTACTS is optional and is queried the first time an appointment is created. The README notes it can be rejected, but search and location suggestions stop working when adding guests.

Official sources

  1. Etar-Group/Etar-Calendar on GitHub
  2. License: GPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/etar-group-etar-calendar.svg)](https://hysenlabs.com/projects/etar-group-etar-calendar)