# react-native-alarm-scheduler > Real, user-visible alarms for React Native and Expo apps. Schedules actual native alarms — > `AlarmManager.setAlarmClock` on Android with a foreground service that keeps ringing through > Doze and a killed app, and AlarmKit on iOS 26+ — rather than notifications that hope the > device is awake. Supports completion-gated alarms that only stop when the app says so. Android API 24+. iOS 15.1+ to install, iOS 26 SDK and runtime for AlarmKit scheduling. Requires a native build; not available in Expo Go. Web is unsupported beyond explicit no-ops. ## Docs - [Introduction](https://react-native-alarm-scheduler.vercel.app/index.md): Real, user-visible alarms for React Native and Expo — AlarmKit on iOS, an equivalent on Android. - [Installation](https://react-native-alarm-scheduler.vercel.app/installation.md): Install the package and configure the Expo config plugin. - [Quick start](https://react-native-alarm-scheduler.vercel.app/quick-start.md): Schedule your first alarm, then handle it when it fires. - [Scheduling alarms](https://react-native-alarm-scheduler.vercel.app/guides/scheduling.md): One-shot alarms, repeating alarms, and how platform options are shared. - [Completion gating](https://react-native-alarm-scheduler.vercel.app/guides/completion-gating.md): Build an alarm that keeps ringing until the user finishes something in your app. - [Handoffs and actions](https://react-native-alarm-scheduler.vercel.app/guides/handoff-and-actions.md): Knowing why your app opened, even when it was killed when the alarm fired. - [Custom alarm sounds](https://react-native-alarm-scheduler.vercel.app/guides/sounds.md): Let users choose a different local audio file for each alarm. - [System Clock integration](https://react-native-alarm-scheduler.vercel.app/guides/system-clock.md): Creating alarms in the user's Clock app on Android. - [Android](https://react-native-alarm-scheduler.vercel.app/platforms/android.md): Exact alarms, the ringing service, reboots, and the OEM problem. - [iOS](https://react-native-alarm-scheduler.vercel.app/platforms/ios.md): AlarmKit requirements, App Intents, and what public APIs do not allow. - [Overview](https://react-native-alarm-scheduler.vercel.app/api.md): Every method exposed by the default export, grouped by what it does. - [Permissions](https://react-native-alarm-scheduler.vercel.app/api/permissions.md): Checking alarm capability and opening the native settings surfaces. - [Scheduling](https://react-native-alarm-scheduler.vercel.app/api/scheduling.md): Schedule, list and cancel app-owned native alarms. - [Context and actions](https://react-native-alarm-scheduler.vercel.app/api/context-and-actions.md): Reading what the native layer recorded while JS was not running. - [Alarm occurrences](https://react-native-alarm-scheduler.vercel.app/api/occurrences.md): Resolve a ringing occurrence and optionally create a deferred or follow-up occurrence. - [Completion and backup](https://react-native-alarm-scheduler.vercel.app/api/completion-and-backup.md): Ending a completion-gated alarm and managing backup timers. - [System Clock](https://react-native-alarm-scheduler.vercel.app/api/system-clock.md): Android intents for the user's own Clock app. - [Debugging](https://react-native-alarm-scheduler.vercel.app/api/debugging.md): Inspecting what the native layer actually did with your alarm. - [Events](https://react-native-alarm-scheduler.vercel.app/api/events.md): Foreground listeners, and why they are never the whole story. - [Types](https://react-native-alarm-scheduler.vercel.app/api/types.md): Every type exported by the package. - [AI and LLMs](https://react-native-alarm-scheduler.vercel.app/ai.md): Machine-readable documentation and an agent skill for building with this package. ## Optional - [Full documentation as one file](https://react-native-alarm-scheduler.vercel.app/llms-full.txt) - [Source repository](https://github.com/prashantrajm/react-native-alarm-scheduler) - [npm package](https://www.npmjs.com/package/react-native-alarm-scheduler)