Manage native alarm Capacitor plugin
The only plugin implementing the latest native alarm APIs for both iOS and Android:
- iOS 26+ AlarmKit - Full integration with Apple's new alarm framework
- Android AlarmClock intents - Modern alarm management following OEM policies
- Future-proof - Built on the newest platform APIs, not deprecated methods
- Cross-platform - Consistent API across iOS and Android
Essential for alarm clock apps, reminder apps, medication trackers, and any app needing native system alarms.
The most complete doc is available here: https://capgo.app/docs/plugins/alarm/
npm install @capgo/capacitor-alarm
npx cap sync- iOS: iOS 26+ only. This plugin relies on
AlarmKitAPIs and will report unsupported on earlier versions or when the framework is unavailable. - Android: Uses
AlarmClockintents; behavior depends on the default Clock app and OEM policies.
Note: This plugin only exposes native alarm actions (create/open). It does not implement any custom in-app alarm scheduling/CRUD.
createAlarm(...)openAlarms()getOSInfo()requestPermissions(...)getPluginVersion()- Interfaces
- Type Aliases
Capacitor Alarm Plugin interface for managing native OS alarms.
createAlarm(options: NativeAlarmCreateOptions) => Promise<NativeActionResult>Create a native OS alarm using the platform clock app. On Android this uses the Alarm Clock intent; on iOS this uses AlarmKit if available (iOS 16+).
| Param | Type | Description |
|---|---|---|
options |
NativeAlarmCreateOptions |
- Options for creating the alarm |
Returns: Promise<NativeActionResult>
Since: 1.0.0
openAlarms() => Promise<NativeActionResult>Open the platform's native alarm list UI, if available.
Returns: Promise<NativeActionResult>
Since: 1.0.0
getOSInfo() => Promise<OSInfo>Get information about the OS and capabilities.
Returns: Promise<OSInfo>
Since: 1.0.0
requestPermissions(options?: { exactAlarm?: boolean | undefined; } | undefined) => Promise<PermissionResult>Request relevant permissions for alarm usage on the platform. On Android, may route to settings for exact alarms.
| Param | Type | Description |
|---|---|---|
options |
{ exactAlarm?: boolean; } |
- Optional parameters for the permission request |
Returns: Promise<PermissionResult>
Since: 1.0.0
getPluginVersion() => Promise<{ version: string; }>Get the native Capacitor plugin version.
Returns: Promise<{ version: string; }>
Since: 1.0.0
Result of a native action.
| Prop | Type | Description |
|---|---|---|
success |
boolean |
Whether the action was successful |
message |
string |
Optional message with additional information |
Options for creating a native OS alarm via the platform clock app.
| Prop | Type | Description |
|---|---|---|
hour |
number |
Hour of day in 24h format (0-23) |
minute |
number |
Minute of hour (0-59) |
label |
string |
Optional label for the alarm |
skipUi |
boolean |
Android only: attempt to skip UI if possible |
vibrate |
boolean |
Android only: set alarm to vibrate |
Returned info about current OS and capabilities.
| Prop | Type | Description |
|---|---|---|
platform |
string |
Platform identifier: 'ios' | 'android' | 'web' |
version |
string |
OS version string |
supportsNativeAlarms |
boolean |
Whether the platform exposes a native alarm app integration |
supportsScheduledNotifications |
boolean |
Whether scheduling local notifications is supported |
canScheduleExactAlarms |
boolean |
Android only: whether exact alarms are allowed |
Result of a permissions request.
| Prop | Type | Description |
|---|---|---|
granted |
boolean |
Overall grant for requested scope |
details |
Record<string, boolean> |
Optional details by permission key |
Construct a type with a set of properties K of type T
{
[P in K]: T;
}
