Persian Calendar for Android: A GPL-3.0 Kotlin App for Jalali Dates
Android Persian Calendar. English Android Persian Calendar A simple, free and open-source Android calendar Project Status & Localization Download If your device is running an older version of Android, see this.
At a glance
- What is it?
- An open-source Android calendar that targets Persian (Jalali) dates, with a simple interface, active releases, and a GPL-3.0 license. It is a niche tool for users who need accurate Iranian calendar features on Android.
- Who is it for?
- Adopt this app if you need a free, open-source Persian calendar on Android and you are comfortable with the GPL-3.0 license, which requires you to share any modified source code. Do not adopt it if you need a calendar that supports multiple calendar systems out of the box or if you cannot comply with copyleft licensing.
- 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 2 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What This Calendar Actually Solves
The Android Persian Calendar solves a specific problem: displaying and managing dates in the Persian (Jalali) calendar on Android devices. Most stock Android calendars use the Gregorian system, and while some third-party apps offer multiple calendars, few are fully localized for Persian speakers. This project fills that gap with a simple, free, and open-source app. The target audience is Persian-speaking Android users who want a dedicated calendar that shows Iranian holidays, uses Persian month names, and respects the Jalali leap year rules. It is also for developers who need a reference implementation of a Jalali calendar in Kotlin, or who want to contribute to a project with an active localization effort via Weblate.
How the App Works: A Look at the Repository Structure
The repository is a standard Android project written in Kotlin. The README does not detail the internal architecture, but the presence of a COMPATIBILITY.md file suggests the code handles varying Android API levels. The app is distributed through multiple channels: Google Play, F-Droid, GitHub Releases, Cafe Bazaar, and Myket. That distribution strategy indicates the app is built as a standard APK, likely with a single application ID (com.byagowi.persiancalendar). The localization is managed through Weblate, which is a web-based translation platform. This means the app's strings are stored in resource files that translators update via Weblate, and the build system pulls those translations. The README does not describe the calendar algorithm, but any Jalali calendar implementation must handle the complex leap year pattern, which is based on astronomical calculations. The app likely uses a well-known algorithm, but the repository does not specify it in the provided material.
Getting It Running: Build and Installation Paths
The README gives one build method: open Android Studio, select File > New > Project from Version Control, enter the URL https://github.com/persian-calendar/persian-calendar, and clone. That is the only build instruction provided. For end users, the app is available on Google Play, F-Droid, GitHub Releases, Cafe Bazaar, and Myket. The README also points to COMPATIBILITY.md for devices running older Android versions, which implies that recent releases might require a minimum API level that excludes very old devices. If you are a developer, you will need to have Android Studio and an Android SDK installed. The project uses Kotlin, so you will need the Kotlin plugin, which is bundled with recent Android Studio versions. There is no mention of command-line builds, such as Gradle commands, in the README, so the Android Studio path is the documented one.
Licensing and Maintenance: GPL-3.0 and Active Releases
The project is licensed under GPL-3.0, as stated in the README. The license text is included, and the Persian section explains why: the code uses other GPL-licensed code, so the developers are obligated to use GPL. This has practical implications. If you fork or modify the app, you must release your modified source code under the same license, at least when you distribute it. The README points to tldrlegal.com for a simplified explanation. The project has recent releases: v10.1.7 from February 2026, v10.1.2 from January 2026, and v10.1.1 from January 2026. That indicates active maintenance. The last push was on 2026-02-19, which is the same date as the latest release. So the project is not abandoned. However, the README is minimal, with no contribution guide or detailed development docs beyond the build step. This could be a barrier for new contributors.
A Real Limitation: Niche Scope and Thin Documentation
The most obvious limitation is that this app only does the Persian calendar. It does not appear to offer Gregorian or Islamic calendar views, at least not based on the README. That makes it the wrong tool for users who need a multi-calendar app or who want to switch between systems. The README is also extremely thin. It does not describe features, such as holiday lists, event reminders, or widget support. It does not explain the calendar algorithm or how to customize the app. For a developer evaluating the code, that lack of documentation is a real cost. You would have to read the source to understand how to extend it. The COMPATIBILITY.md file might contain more details, but it is not included in the provided material. So while the app is functional, its scope is narrow, and its documentation is sparse.
Alternative Approaches: What Else Exists
A direct alternative is to use a general-purpose calendar app that supports multiple calendar systems, such as Etar (an open-source Android calendar) or even Google Calendar with a Persian calendar overlay. The difference in approach is significant. Etar is a full-featured calendar with event management, reminders, and month/week/agenda views. It uses the standard Android calendar provider, so it can sync with Google Calendar. The Persian Calendar app, in contrast, is a standalone app that likely does not integrate with the system calendar provider. That means events you create in the Persian Calendar might not appear in other calendar apps. If you need event syncing, the Persian Calendar is the wrong choice. Another alternative is to use a library that provides Jalali date conversion, such as the Joda-Time library with a Persian calendar implementation, and then build your own app. That gives you more control but requires more work. The Persian Calendar app is a ready-made solution, but it is not a platform for building a broader calendar solution.
Editorial conclusion
Adopt this app if you need a free, open-source Persian calendar on Android and you are comfortable with the GPL-3.0 license, which requires you to share any modified source code. Do not adopt it if you need a calendar that supports multiple calendar systems out of the box or if you cannot comply with copyleft licensing. Before integrating or forking, verify the current build instructions and check the COMPATIBILITY.md file if you support older Android versions, since the README points there for legacy device guidance.
Community notes