A clean, minimal calendar app for Android built entirely with Jetpack Compose and Material 3. No third-party dependencies, no bloat β just a fast, native calendar experience.
- Monthly calendar grid β clean 7-column layout with a Saturday-first week start
- Swipe navigation β swipe left/right anywhere on the screen to move between months
- Animated transitions β smooth slide animations when changing months, with correct directional logic
- Tap to navigate β tap the month or year in the header to jump directly via picker dialogs
- Year picker β scrollable grid covering 1991β2050, auto-scrolled to the current year
- Month picker β 3-column grid for quick month selection
- Today card β pinned bottom card showing today's full date; tap it to jump back to the current month
- Today & selected day indicators β today gets an outline ring; selected date gets a filled circle
- Edge-to-edge UI β full-screen layout with no wasted space
- Material 3 theming β follows system color scheme (light/dark mode)
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose |
| Design system | Material 3 |
| Date/time | java.time (LocalDate, YearMonth) |
| Architecture | Single-Activity, Composable functions |
| Min SDK | 35 (Android 15) |
| Target SDK | 36 |
app/src/main/java/com/mrjis/calendar/
β
βββ MainActivity.kt # Entry point; hosts CalendarApp composable
β
βββ ui/theme/
βββ Color.kt # App color palette
βββ Theme.kt # MaterialTheme setup
βββ Type.kt # Typography definitions
Key composables inside MainActivity.kt:
CalendarAppβ root composable; manages state (current month, selected date, slide direction)CalendarHeaderβ animated month/year label with tap-to-pick supportWeekdayHeaderβ static SatβFri day-of-week labelsCalendarGridβLazyVerticalGridrendering all day cells for a given monthDayCellβ individual day tile with selected/today visual statesTodayDateCardβ bottom card displaying today's full date and acting as a reset buttonYearPickerDialogβ scrollable year selection dialogMonthPickerDialogβ 3-column month selection dialog
- Android Studio Hedgehog or later
- Android SDK 35+
- Kotlin 2.x
git clone https://github.com/MrDeveloperJIS/Calendar-AndroidApp.git
cd Calendar-AndroidAppOpen the project in Android Studio, wait for Gradle sync, then run on a device or emulator running Android 15 (API 35) or higher.
This project is open source. See LICENSE for details.