Skip to content

zenta-ab/capacitor-alarm

 
 

Repository files navigation

@capgo/capacitor-alarm

Capgo - Instant updates for capacitor

Manage native alarm Capacitor plugin

Why Capacitor Alarm?

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.

Documentation

The most complete doc is available here: https://capgo.app/docs/plugins/alarm/

Install

npm install @capgo/capacitor-alarm
npx cap sync

Requirements

  • iOS: iOS 26+ only. This plugin relies on AlarmKit APIs and will report unsupported on earlier versions or when the framework is unavailable.
  • Android: Uses AlarmClock intents; 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.

API

Capacitor Alarm Plugin interface for managing native OS alarms.

createAlarm(...)

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()

openAlarms() => Promise<NativeActionResult>

Open the platform's native alarm list UI, if available.

Returns: Promise<NativeActionResult>

Since: 1.0.0


getOSInfo()

getOSInfo() => Promise<OSInfo>

Get information about the OS and capabilities.

Returns: Promise<OSInfo>

Since: 1.0.0


requestPermissions(...)

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()

getPluginVersion() => Promise<{ version: string; }>

Get the native Capacitor plugin version.

Returns: Promise<{ version: string; }>

Since: 1.0.0


Interfaces

NativeActionResult

Result of a native action.

Prop Type Description
success boolean Whether the action was successful
message string Optional message with additional information

NativeAlarmCreateOptions

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

OSInfo

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

PermissionResult

Result of a permissions request.

Prop Type Description
granted boolean Overall grant for requested scope
details Record<string, boolean> Optional details by permission key

Type Aliases

Record

Construct a type with a set of properties K of type T

{ [P in K]: T; }

About

Capacitor Plugin to set and open the native alarms

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 37.4%
  • JavaScript 19.1%
  • Java 18.6%
  • TypeScript 15.6%
  • CSS 5.5%
  • HTML 2.3%
  • Ruby 1.5%