Android alarm clock
Zmanim Alarm
Wake by the Jewish clock.
Your day already follows the halachic hours. Your alarm should too. Zmanim Alarm computes 15 zmanim for wherever you are using the KosherJava library, and lets you set alarms against any of them — with per-slot offsets and tones. The times that shape your morning set your alarm, not a fixed number on a dial.
Coming soon to Google Play15 zmanim, computed daily from your GPS location
The alarm screen
Dynamic alarm slots — no hardcoded defaults, no limit on how many you add. Each slot picks any of 15 zmanim with a per-slot minute offset and individual ringtone. Swipe to delete.
Battery-exemption prompts and foreground-service alarms so alarms fire reliably. Boot receiver re-arms the schedule after device restart. Home-screen widget shows the next zman.
Built in Kotlin, distributed via Firebase App Distribution to testers. Min SDK 26 (Android 8).
How it works
01
GPS location
Gets current position on launch via FusedLocationProviderClient. Saved to SharedPreferences for background use — the daily midnight worker reads it without waking the UI.
02
Zmanim calculation
KosherJava ComplexZmanimCalendar computes all 15 zmanim. GRA is the default opinion (MGA also available). Noon-anchored calculation via ZmanimHelper wrapper.
03
Reliable delivery
WorkManager schedules a daily 00:05 refresh. AlarmHelper builds exact intents to the system Clock app. Foreground services, battery-exemption prompts, and boot receivers keep alarms firing.
Built for trust
A zmanim-based alarm is only useful if you can count on it. The app layers foreground services, battery-optimization exemptions, and persistent WorkManager scheduling to keep alarms firing reliably — morning after morning, Yom Tov after Yom Tov. A debug log viewer and alarm tester activity make it possible to diagnose and verify every fire.