react-native-alarm-scheduler
Guides

System Clock integration

Creating alarms in the user's Clock app on Android.

Separate from app-owned alarms, Android lets you hand an alarm to the user’s own Clock app. The alarm then belongs to the Clock app: it survives your app being uninstalled, and your app has no control over it afterwards.

const created = await AlarmScheduler.setSystemAlarmAsync({
  hour: 8,
  minute: 0,
  title: 'Leave for work',
  weekdays: [1, 2, 3, 4, 5],
  showUi: true,
});

showUi: true opens the Clock app’s create-alarm screen prefilled, letting the user confirm. Returns false if no compatible Clock activity is available.

Open the Clock app’s alarm list:

await AlarmScheduler.openSystemAlarmAppAsync();

iOS cannot do this

iOS exposes no public API for creating alarms in the system Clock app, so setSystemAlarmAsync throws on iOS. openSystemAlarmAppAsync uses a best-effort Clock URL and may return false or do nothing depending on the OS version.

Which should you use?

App-owned alarmSystem Clock alarm
PlatformAndroid + iOSAndroid only
Your app controls it✅❌
Completion gating✅❌
Custom sound and UI✅❌
Survives app uninstall❌✅
Appears in the user’s Clock app❌✅

Use scheduleAlarmAsync for anything your app needs to control. Use setSystemAlarmAsync when the user is really asking for a plain alarm and would expect to find it in their Clock app.