Myanmar Calendar
A modern Myanmar calendar app with calendar views, astrology, events, conversion tools, and printable calendar generation.

Featured Graphic#
| GitHub | Play Store | Website |
Features • Screenshots • Quick Start • Remote Config • Architecture • Contributing
📱 Overview#
Myanmar Calendar App combines Myanmar calendar data and Western dates in one app experience:
- Home month calendar with rich date details
- Year, week, and day calendar views
- Date conversion and calendar utilities
- Events with recurring support
- Calendar generation (preview/beta) for image/PDF export
- Remote-configurable holiday overrides
Core calculation runtime is powered by myanmar_calendar_dart, with app-level settings for language, timezone behavior, and display options.
✨ Features#
🗓️ Core Calendar#
- Myanmar and Western date rendering in month grid
- Day details with moon phase, sabbath, holidays, and astrological data
- Multiple calendar views:
- Month (home)
- Year view
- Week view
- Day view
- Fast runtime config updates (language, timezone source, holiday overrides)
🌙 Myanmar Date & Astrology#
- Myanmar month/day/year and Sasana year
- Fortnight day and moon phase information
- Astrological indicators including:
- Sabbath / Sabbath Eve
- Yatyaza
- Pyatthada / Afternoon Pyatthada
- Mahabote / Nakhat / Nagahle related outputs
🔄 Converter Tools#
- Myanmar ↔ Western date conversion
- Date difference calculator
- Date arithmetic tools
- Moon phase finder
📌 Events#
- Create, edit, and delete events
- Recurring event support
- Day-based event timeline and quick navigation
- Event categories and priority support
🖨️ Calendar Generation (Preview/Beta)#
- Generate by selected month or full year
- In-app page preview and export flow
- PDF/image export and save/share actions
- Theme/background customization
- Overlay editor support for:
- Text
- Emoji
- Sticker
- User image
- Layout tools for portrait/landscape and printable formats
Calendar Generation is currently preview/beta and still under active refinement.
🎨 Personalization#
- Light/dark theme modes
- Multiple theme presets + custom colors
- Dynamic app icon selection (platform dependent)
- App language and calendar language controls
- Display toggles (holidays, astrology, Myanmar/Western date visibility, etc.)
- Timezone behavior:
- Use device timezone (recommended default)
- Or fixed Myanmar timezone fallback
☁️ Remote Config + Onboarding#
- Firebase Remote Config driven holiday overrides
- App update prompts from remote config (optional/required update support)
- First-run consent flow for analytics/crash reporting
- Promo carousel for onboarding and new feature announcements
📲 Integrations#
- Android home widgets (configurable theme/options)
- Telegram web integration hooks
- Local-first storage using SQLite (drift)
📸 Screenshots#
| Home Month | Day Details | Year View |
|---|---|---|
![]() | ![]() | ![]() |
| Week View | Day View | Converter |
|---|---|---|
![]() | ![]() | ![]() |
| Calculator | Arithmetic | Moon Phase |
|---|---|---|
![]() | ![]() | ![]() |
| Events List | Event Form | Settings |
|---|---|---|
![]() | ![]() | ![]() |
| Generation Preview | Generation Editor | Export Result |
|---|---|---|
![]() | ![]() | ![]() |
| Widget Settings |
|---|
![]() |
🚀 Quick Start#
Prerequisites#
- Flutter SDK 3.x
- Dart SDK 3.11+
- Android Studio or VS Code with Flutter tooling
- iOS builds require Xcode (macOS)
Run Locally#
# Clone
git clone https://github.com/mixin27/mmcalendar.git
cd mmcalendar
# Install workspace dependencies
flutter pub get
# Run mobile app package
cd apps/myanmar_calendar
flutter pub get
flutter runRun on Chrome (Web)#
cd apps/myanmar_calendar
flutter run -d chromeProduction Builds#
cd apps/myanmar_calendar
# Android
flutter build apk --release
flutter build appbundle --release
# iOS (macOS only)
flutter build ios --release
# Web
flutter build web --releaseiOS Alternate App Icons (Testing Note)#
- Alternate icon switching is supported in the app for iOS.
- iOS Simulator may fail with LaunchServices resource/token errors (
NSPOSIXErrorDomain code=35) even when configuration is correct. - For reliable verification, test on:
- a physical iPhone, or
- a cloud real-device testing service (for example BrowserStack App Live).
Native Setup Recovery (Android Icons/Widgets + iOS Icons)#
If platform folders are regenerated and native integrations are lost:
./scripts/restore_native_mobile_setup.sh --scope all
./scripts/verify_native_mobile_setup.sh --scope allReference: docs/architecture/native_mobile_setup.md
☁️ Remote Config#
Holidays Config (required for holiday override feature)#
- Key:
holidays_config_v2 - Type: JSON string
Sample payload:
{
"customHolidayRules": [
{
"id": "team_founding_day",
"name": "Team Founding Day",
"type": "other",
"localizedNames": {
"my": "အသင်းတည်ထောင်နေ့",
"en": "Team Founding Day"
},
"rule": {
"kind": "westernDate",
"month": 9,
"day": 1
},
"cacheKey": "team_founding_day",
"cacheVersion": 1
},
{
"id": "thingyan_special",
"name": "Thingyan Special",
"type": "other",
"rule": {
"kind": "myanmarDate",
"month": 1,
"day": 1
}
}
],
"disabledHolidays": ["halloween"],
"disabledHolidaysByYear": {
"2027": ["valentinesDay"]
},
"disabledHolidaysByDate": {
"2026-10-31": ["halloween"]
}
}Reference:
- Holiday IDs: holiday_id.dart
App Update Config (optional)#
If you enable remote-config update checks, these keys are used:
app_update_enabled(bool)app_update_latest_build_number(int)app_update_latest_version(string)app_update_min_supported_build_number(int)app_update_force_title(string)app_update_force_message(string)app_update_optional_title(string)app_update_optional_message(string)app_update_release_notes(string)app_update_android_url(string)app_update_ios_url(string)app_update_web_url(string)
🏗️ Architecture#
This repository is a Flutter workspace with feature packages and shared layers.
mmcalendar/
├── apps/
│ └── myanmar_calendar/ # Main app
├── packages/
│ ├── shared/
│ │ ├── core/ # Contracts, ports, constants, runtime utils
│ │ ├── localizations/ # i18n resources
│ │ ├── ui_kit/ # Shared UI building blocks
│ │ └── overlay_editor/ # Overlay editing package
│ ├── features/
│ │ ├── calendar/
│ │ ├── views/
│ │ ├── converter/
│ │ ├── events/
│ │ ├── settings/
│ │ ├── calendar_generation/
│ │ ├── promo/
│ │ ├── holidays/
│ │ └── home_widgets/
│ └── integrations/
│ ├── database/ # Drift/SQLite
│ ├── firebase/ # Remote config + analytics/crash adapters
│ ├── app_update/
│ └── telegram_web/
└── scripts/Stack#
- Flutter + Dart
flutter_bloc(state management)go_router(navigation)drift(local database)get_it+injectable(dependency injection)myanmar_calendar_dart(calendar engine)
Development Commands#
# Workspace dependencies
flutter pub get
# Codegen (from workspace root)
dart run build_runner build --delete-conflicting-outputs
# Analyze
flutter analyze📝 License#
This project is licensed under the MIT License.
🙏 Acknowledgments#
- Myanmar calendar calculations based on Yan Naing Aye's algorithm
- Traditional Myanmar astrology sources and community feedback
- Flutter and open-source ecosystem contributors
📞 Support#
- Email: kyawzayartun.contact@gmail.com
- Issues: GitHub Issues

















