# Birday: an Android app that remembers birthdays and events

> Birday is an open source Kotlin application for Android that keeps birthdays and other events in its own database and notifies you about them, instead of leaving them to a social network or a crowded calendar. It is deliberately small in scope, aggressively translated, and now on a 5.0 beta line.

**m-i-n-a-r/birday** — 🎉 A beautiful Kotlin app to remember birthdays and events without having to open Facebook, set alarms or rely on Google Calendar

- Repository: https://github.com/m-i-n-a-r/birday
- Stars: 1,209 · Forks: 94
- Language: Kotlin
- License: NOASSERTION
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/m-i-n-a-r-birday

## A birthday you only find out about on Facebook

Birday is an open source app to remember birthdays and other events without having to rely on apps like Facebook or Google Calendar, or to set alarms manually. The project description puts it as a beautiful Kotlin app for exactly that purpose.

The reasoning behind it is in the introduction and it is more specific than a feature list. Google Calendar does not display an automatic notification on the day of a birthday. Sometimes a birthday has to be remembered for a person who is not in your contacts. And adding too many events to a calendar makes it messy, so the author prefers to manage them separately.

That is a narrow complaint, and the application is built to answer it. The scope statement is unusually honest: no less, no more. The main focus is being easy to use, clean and lightweight, and the author says they are always glad to add features, but only important and really useful ones. That line explains the rest of the feature list better than the list itself does, because a long list of small features is exactly what a project that cared about feature count would have.

The project is Kotlin, the licence badge in the README is GPL 3, and the application id in the F-Droid link is com.minar.birday. The last push was on 2026-10-08 and the repository is not archived.

## What the app actually does with an event

The feature list is long, but it groups into a few themes, and the first theme is notifications.

You get a notification on the day of the event, with a selectable time, and optional grouping when several events fall on the same day. You can also get an additional notification up to 21 days before the event, and several such lead times can be selected at once. The notification for favourite events only option is there for people who do not want a daily ping for a list of forty people.

Events arrive either by import or by hand. Import from contacts or calendar can run on first launch, on every launch, or on demand, and the strategy for a conflict is selectable, which matters because a birthday imported from contacts and a birthday in your calendar are the same event stored twice. You can also insert an event manually by giving a first name, an optional last name, an image and a date, with the year optional, which is the minimum needed for the recurring annual kind of event.

Around the event itself there are the usual conveniences: pick your favourite events to see detailed information and a countdown, tap an event for every detail and the available actions, a note field on each event, delete, modify and share, a search bar and an event type selector, a main list organised by month or alphabetically, a quick glance row showing the next ten days, a yearly overview screen with an advanced mode, and easily hide the top cards to see the list fullscreen.

A quiet detail sits in the middle of the list: a set of stats, zodiac, average age and more, that appears once more than five events are inserted. It is exactly the kind of small, delightful thing the project is about.

## Backup, restore and the import formats

Data handling has three separate paths, and the distinction between them matters if you are moving from another reminder app.

The first is the app's own backup and restore, described as easily backing up and restoring your saved events. That is the path for a device change, and it is the one the feature list calls out directly.

The second is the platform backup, and it is conditional in an interesting way. The birthdays are also automatically backed up in the cloud by Google Play Services when the app is installed from the Play Store. So the F-Droid build and the Play Store build differ in behaviour here, not only in distribution channel, and a user who installs from F-Droid has to rely on the in-app backup instead.

The third is the file interchange, and this one is explicitly labelled experimental: CSV and JSON import and export. Experimental is the right word for it, and it is the format you would reach for when you are moving in from a spreadsheet, from a previous app, or when you want your event list in something you can diff.

There is a fourth, smaller path that is worth naming: the quick apps launcher, which lets you get to a person's event from a launcher rather than opening the app first. For an app whose entire purpose is a notification, the shortest path from the home screen to a specific birthday is part of the product.

## Material 3 Expressive, and a lot of small delight

The visual side of Birday is where the project spends its ambition, and the list of items here is long enough to be worth reading as a list.

The theming is complete: light, dark, Amoled black and system default. There is full Material 3 Expressive and Monet support, so the app takes its palette from the system wallpaper where the platform supports it. The accent colour is selectable with twelve choices and the change needs no app restart, which is a small detail that people notice every day. Shimmer effects and confetti are included, and can be disabled.

The layout is configurable too, with Material 3 configurable widgets in minimal and complete variants, so you can decide how much the dashboard shows before the list takes over. There are beautiful animations, an animated notification icon, and both can be disabled, with the author adding a joke that he hates you if you do. There is multiwindow and freeform full support, an animated splashscreen and app intro, and dynamic layouts.

Then the details: a name-first or surname-first choice, since a list of people reads differently depending on culture, hide and show images, and a small optimized apk size.

The repository topics match the implementation: material-components, material-design, animated-vector-drawables, room-database and google-contacts, which tells you the events live in a Room database, the contacts integration goes through the system provider, and the icons are vector drawables rather than bitmaps.

## Thirty-one languages and a table of names

The translations section is the most unusual part of the README, and it is worth a look because it tells you something about how the project is run.

The guide and the information point at Crowdin, and the badge shows the localisation progress for the project there. The table lists the language, who special thanks goes to, and who updated it, and the list is long. English, Spanish, Swedish, Dutch, Italian, French, Hungarian, German, Vietnamese, Russian, Czech, Slovak, Polish, Croatian, Portuguese, Brazilian Portuguese, Romanian, Traditional Chinese, Simplified Chinese, Catalan, Serbian, Ukrainian, Greek, Marathi, Malayalam, Hindi, Finnish, Turkish and Basque, with the European and Brazilian Portuguese variants listed separately.

Two details stand out. The author credits himself for English, Spanish and Italian, and several languages are credited to a single person who did the whole language, for example the Czech and Slovak entries both to IQLogic. And the app advertises 30 plus locales, which matches the table.

The crowdin.yml file in the repository root is the configuration for that pipeline, so a contributor who wants to help with a language goes through Crowdin rather than editing resource files directly.

## Distribution, releases and the repository shape

The app is available through Google Play and F-Droid, with the F-Droid package identifier com.minar.birday, and the repository has a fastlane/ directory holding the store metadata, including the phone screenshots in the en-US image set that the README embeds.

The release history shows a steady line with a major version in preparation. v4.6.1 was a beta on 2025-10-03, v4.7.2 followed on 2025-10-22, and v5.0.0 beta came on 2026-10-08, the same day as the last push to the repository. So the current published line is the 4.7 series and the 5.0 beta is where new work is landing.

The repository itself is a standard Gradle Kotlin project, with build.gradle.kts and settings.gradle.kts at the root, gradle.properties, the Gradle wrapper with both gradlew and gradlew.bat, a scripts/ directory, the crowdin.yml and the fastlane/ directory for store metadata. The app/ directory holds the Android application.

There is also a web/ directory at the root, which is worth noting for a project whose whole premise is a native notification. The web directory suggests a web companion or a companion site, and it is the one part of the tree the README does not explain, so it is the first place to look if you are wondering how the two halves relate.

## Conclusion

Adopt Birday if you want birthdays and recurring events in one small app that notifies you properly, on a device where a social network is the usual reminder mechanism and where you would rather keep your contacts out of a calendar. Do not adopt it if you need reminders that live in your calendar, because the whole premise is managing them separately, and expect to be on the Play Store build if you want the automatic Google Play Services backup. Before you start, check the notification permissions on your Android version, decide whether the import from contacts and calendar should run once or on every launch, and look at the 5.0 beta notes before you install the beta over a stable build.

## FAQ

### What problem does Birday solve?

It keeps birthdays and other events in its own database and notifies you about them, so you do not have to rely on Facebook to remember, or on a calendar that does not notify on the day, and you can keep a long list of people out of your calendar. The project states its focus is being easy to use, clean and lightweight.

### Can Birday import birthdays from my contacts?

Yes. Import from contacts or calendar can run on first launch, on every launch or on demand, and the conflict strategy is selectable, so a birthday present both in your contacts and in your calendar does not end up duplicated.

### How do I back up my Birday events?

The app has its own backup and restore, and there is experimental CSV and JSON import and export for moving data between systems. If you install from the Play Store, the birthdays are also automatically backed up in the cloud by Google Play Services, which is the one behaviour that differs between the Play Store and F-Droid builds.

### Which languages does Birday support?

The README lists 29 languages in a table of translators, and the app advertises 30 plus locales. Translation runs through Crowdin, with the project configuration in crowdin.yml, and the localised badge shows the current progress.

### Is Birday still being developed?

The repository is not archived and the last push was on 2026-10-08, the same day as the v5.0.0 beta tag, which follows v4.6.1 beta in October 2025 and v4.7.2 later that month. The 5.0 line is where new work is landing, so the published stable build is still the 4.7 series.

## Sources

- [Issues](https://github.com/m-i-n-a-r/birday/issues)
- [m-i-n-a-r/birday on GitHub](https://github.com/m-i-n-a-r/birday)
- [README](https://github.com/m-i-n-a-r/birday/blob/master/README.md)
- [Releases](https://github.com/m-i-n-a-r/birday/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/m-i-n-a-r-birday
