---
description: Capacitor plugin to create real system alarms and timers on Android and iOS. iOS support requires iOS 26 or later using Apple's AlarmKit framework.
title: Capacitor Alarm Plugin for Android & iOS - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/alarm.png
---

<!doctype html> 

[Skip to content ](#capacitor-alarm-plugin) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Enums ](#enums)
* [ Alarms vs. Local Notifications ](#alarms-vs-local-notifications)
* [ Platform Support ](#platform-support)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Android Battery Optimization ](/docs/sdks/capacitor/android-battery-optimization/)
* [ Android Dark Mode Support ](/docs/sdks/capacitor/android-dark-mode-support/)
* [ Android Edge-to-Edge Support ](/docs/sdks/capacitor/android-edge-to-edge-support/)
* [ Android Foreground Service ](/docs/sdks/capacitor/android-foreground-service/)
* [ Android SMS Retriever ](/docs/sdks/capacitor/android-sms-retriever/)
* [ App Icon ](/docs/sdks/capacitor/app-icon/)
* [ App Integrity ](/docs/sdks/capacitor/app-integrity/)
* [ App Language ](/docs/sdks/capacitor/app-language/)
* [ App Launcher ](/docs/sdks/capacitor/app-launcher/)
* [ App Review ](/docs/sdks/capacitor/app-review/)
* [ App Shortcuts ](/docs/sdks/capacitor/app-shortcuts/)
* [ App Tracking Transparency ](/docs/sdks/capacitor/app-tracking-transparency/)
* [ App Update ](/docs/sdks/capacitor/app-update/)
* [ Apple Sign-In ](/docs/sdks/capacitor/apple-sign-in/)
* [ Asset Manager ](/docs/sdks/capacitor/asset-manager/)
* [ Audio Player ](/docs/sdks/capacitor/audio-player/)
* [ Audio Recorder ](/docs/sdks/capacitor/audio-recorder/)
* [ Audio Session ](/docs/sdks/capacitor/audio-session/)
* [ Background Task ](/docs/sdks/capacitor/background-task/)
* [ Badge ](/docs/sdks/capacitor/badge/)
* [ Barometer ](/docs/sdks/capacitor/barometer/)
* [ Battery ](/docs/sdks/capacitor/battery/)
* [ Biometrics ](/docs/sdks/capacitor/biometrics/)
* [ Bluetooth Low Energy ](/docs/sdks/capacitor/bluetooth-low-energy/)
* [ Clipboard ](/docs/sdks/capacitor/clipboard/)
* [ Cloudinary ](/docs/sdks/capacitor/cloudinary/)
* [ Compass ](/docs/sdks/capacitor/compass/)
* [ Contacts ](/docs/sdks/capacitor/contacts/)
* [ Datetime Picker ](/docs/sdks/capacitor/datetime-picker/)
* [ Device Info ](/docs/sdks/capacitor/device-info/)
* [ Dialog ](/docs/sdks/capacitor/dialog/)
* [ Facebook Sign-In ](/docs/sdks/capacitor/facebook-sign-in/)
* [ File Compressor ](/docs/sdks/capacitor/file-compressor/)
* [ File Opener ](/docs/sdks/capacitor/file-opener/)
* [ File Picker ](/docs/sdks/capacitor/file-picker/)
* [ Firebase ](/docs/sdks/capacitor/firebase/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ Enums ](#enums)
* [ Alarms vs. Local Notifications ](#alarms-vs-local-notifications)
* [ Platform Support ](#platform-support)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Alarm Plugin[¶](#capacitor-alarm-plugin "Permanent link")

Capacitor plugin to create system alarms and timers.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

* ⏰ **Real system alarms**: Create alarms that break through Silent Mode and Focus — unlike local notifications.
* ⏲️ **Timers**: Create countdown timers in the system clock app on Android.
* 📋 **Alarm management**: List and cancel the alarms created by your app on iOS.
* 🍏 **AlarmKit**: One of the first plugins to support Apple's new AlarmKit framework on iOS 26.
* 🔐 **Permissions**: Check and request the alarm authorization with a single call.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-alarm` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-alarm
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

### Android[¶](#android "Permanent link")

The plugin already declares the `com.android.alarm.permission.SET_ALARM` permission in its manifest. This is a normal permission that is granted automatically, so no additional configuration is required.

### iOS[¶](#ios "Permanent link")

This plugin uses Apple's [AlarmKit](https://developer.apple.com/documentation/alarmkit) framework, which requires **iOS 26 or later**. On older versions, all methods except `isAvailable()` reject as unavailable.

Add the `NSAlarmKitUsageDescription` key to the `ios/App/App/Info.plist` file, which tells the user why the app needs to schedule alarms:

`[](#%5F%5Fcodelineno-3-1)<key>NSAlarmKitUsageDescription</key>
[](#%5F%5Fcodelineno-3-2)<string>The app uses alarms to notify you at the times you choose.</string>
`

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

`[](#%5F%5Fcodelineno-4-1)import { Alarm, Weekday } from '@capawesome/capacitor-alarm';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const cancelAlarm = async (id: string) => {
[](#%5F%5Fcodelineno-4-4)  await Alarm.cancelAlarm({ id });
[](#%5F%5Fcodelineno-4-5)};
[](#%5F%5Fcodelineno-4-6)
[](#%5F%5Fcodelineno-4-7)const checkPermissions = async () => {
[](#%5F%5Fcodelineno-4-8)  const { alarms } = await Alarm.checkPermissions();
[](#%5F%5Fcodelineno-4-9)  return alarms;
[](#%5F%5Fcodelineno-4-10)};
[](#%5F%5Fcodelineno-4-11)
[](#%5F%5Fcodelineno-4-12)const createAlarm = async () => {
[](#%5F%5Fcodelineno-4-13)  const { id } = await Alarm.createAlarm({
[](#%5F%5Fcodelineno-4-14)    hour: 6,
[](#%5F%5Fcodelineno-4-15)    minute: 30,
[](#%5F%5Fcodelineno-4-16)    label: 'Wake up',
[](#%5F%5Fcodelineno-4-17)    days: [Weekday.Monday, Weekday.Friday],
[](#%5F%5Fcodelineno-4-18)  });
[](#%5F%5Fcodelineno-4-19)  return id;
[](#%5F%5Fcodelineno-4-20)};
[](#%5F%5Fcodelineno-4-21)
[](#%5F%5Fcodelineno-4-22)const createTimer = async () => {
[](#%5F%5Fcodelineno-4-23)  await Alarm.createTimer({
[](#%5F%5Fcodelineno-4-24)    duration: 300,
[](#%5F%5Fcodelineno-4-25)    label: 'Tea',
[](#%5F%5Fcodelineno-4-26)  });
[](#%5F%5Fcodelineno-4-27)};
[](#%5F%5Fcodelineno-4-28)
[](#%5F%5Fcodelineno-4-29)const getAlarms = async () => {
[](#%5F%5Fcodelineno-4-30)  const { alarms } = await Alarm.getAlarms();
[](#%5F%5Fcodelineno-4-31)  return alarms;
[](#%5F%5Fcodelineno-4-32)};
[](#%5F%5Fcodelineno-4-33)
[](#%5F%5Fcodelineno-4-34)const isAvailable = async () => {
[](#%5F%5Fcodelineno-4-35)  const { available } = await Alarm.isAvailable();
[](#%5F%5Fcodelineno-4-36)  return available;
[](#%5F%5Fcodelineno-4-37)};
[](#%5F%5Fcodelineno-4-38)
[](#%5F%5Fcodelineno-4-39)const openAlarms = async () => {
[](#%5F%5Fcodelineno-4-40)  await Alarm.openAlarms();
[](#%5F%5Fcodelineno-4-41)};
[](#%5F%5Fcodelineno-4-42)
[](#%5F%5Fcodelineno-4-43)const requestPermissions = async () => {
[](#%5F%5Fcodelineno-4-44)  const { alarms } = await Alarm.requestPermissions();
[](#%5F%5Fcodelineno-4-45)  return alarms;
[](#%5F%5Fcodelineno-4-46)};
`

## API[¶](#api "Permanent link")

* [cancelAlarm(...)](#cancelalarm)
* [checkPermissions()](#checkpermissions)
* [createAlarm(...)](#createalarm)
* [createTimer(...)](#createtimer)
* [getAlarms()](#getalarms)
* [isAvailable()](#isavailable)
* [openAlarms()](#openalarms)
* [requestPermissions()](#requestpermissions)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)
* [Enums](#enums)

### cancelAlarm(...)[¶](#cancelalarm "Permanent link")

`[](#%5F%5Fcodelineno-5-1)cancelAlarm(options: CancelAlarmOptions) => Promise<void>
`

Cancel an alarm that was created by the app.

Only available on iOS.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [CancelAlarmOptions](#cancelalarmoptions) |

**Since:** 0.1.0

---

### checkPermissions()[¶](#checkpermissions "Permanent link")

`[](#%5F%5Fcodelineno-6-1)checkPermissions() => Promise<PermissionStatus>
`

Check permission to schedule alarms.

On Android, this method always returns `granted` since alarms are created via the system clock app.

Only available on Android and iOS.

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.1.0

---

### createAlarm(...)[¶](#createalarm "Permanent link")

`[](#%5F%5Fcodelineno-7-1)createAlarm(options: CreateAlarmOptions) => Promise<CreateAlarmResult>
`

Create a new alarm.

On Android, the alarm is created in the system clock app. The app has no access to the created alarm afterwards.

On iOS, the alarm is owned by the app and can be listed and canceled using the `getAlarms(...)` and `cancelAlarm(...)`methods.

Only available on Android and iOS.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [CreateAlarmOptions](#createalarmoptions) |

**Returns:** `Promise<[CreateAlarmResult](#createalarmresult)>`

**Since:** 0.1.0

---

### createTimer(...)[¶](#createtimer "Permanent link")

`[](#%5F%5Fcodelineno-8-1)createTimer(options: CreateTimerOptions) => Promise<void>
`

Create a new countdown timer in the system clock app.

Only available on Android.

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [CreateTimerOptions](#createtimeroptions) |

**Since:** 0.1.0

---

### getAlarms()[¶](#getalarms "Permanent link")

`[](#%5F%5Fcodelineno-9-1)getAlarms() => Promise<GetAlarmsResult>
`

Get all alarms that were created by the app.

Only available on iOS.

**Returns:** `Promise<[GetAlarmsResult](#getalarmsresult)>`

**Since:** 0.1.0

---

### isAvailable()[¶](#isavailable "Permanent link")

`[](#%5F%5Fcodelineno-10-1)isAvailable() => Promise<IsAvailableResult>
`

Check if alarms are available on this device.

On Android, this checks whether an app that can handle alarms is installed. On iOS, this returns `true` if the device runs iOS 26 or later.

Only available on Android and iOS.

**Returns:** `Promise<[IsAvailableResult](#isavailableresult)>`

**Since:** 0.1.0

---

### openAlarms()[¶](#openalarms "Permanent link")

`[](#%5F%5Fcodelineno-11-1)openAlarms() => Promise<void>
`

Open the list of alarms in the system clock app.

Only available on Android.

**Since:** 0.1.0

---

### requestPermissions()[¶](#requestpermissions "Permanent link")

`[](#%5F%5Fcodelineno-12-1)requestPermissions() => Promise<PermissionStatus>
`

Request permission to schedule alarms.

On Android, this method always returns `granted` since alarms are created via the system clock app.

Only available on Android and iOS.

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### CancelAlarmOptions[¶](#cancelalarmoptions "Permanent link")

| Prop   | Type   | Description                                   | Since |
| ------ | ------ | --------------------------------------------- | ----- |
| **id** | string | The unique identifier of the alarm to cancel. | 0.1.0 |

#### PermissionStatus[¶](#permissionstatus "Permanent link")

| Prop       | Type                                | Description                            | Since |
| ---------- | ----------------------------------- | -------------------------------------- | ----- |
| **alarms** | [PermissionState](#permissionstate) | Permission state of scheduling alarms. | 0.1.0 |

#### CreateAlarmResult[¶](#createalarmresult "Permanent link")

| Prop   | Type           | Description                                                                                                                     | Since |
| ------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **id** | string \| null | The unique identifier of the created alarm. On Android, this is always null since the alarm is created in the system clock app. | 0.1.0 |

#### CreateAlarmOptions[¶](#createalarmoptions "Permanent link")

| Prop        | Type                                                    | Description                                                                                                                      | Since |
| ----------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **android** | [CreateAlarmAndroidOptions](#createalarmandroidoptions) | Android-specific options. Only available on Android.                                                                             | 0.1.0 |
| **days**    | Weekday\[\]                                             | The days of the week on which the alarm repeats. If not provided, the alarm fires once at the next occurrence of the given time. | 0.1.0 |
| **hour**    | number                                                  | The hour of the alarm (0-23).                                                                                                    | 0.1.0 |
| **label**   | string                                                  | The label of the alarm.                                                                                                          | 0.1.0 |
| **minute**  | number                                                  | The minute of the alarm (0-59).                                                                                                  | 0.1.0 |

#### CreateAlarmAndroidOptions[¶](#createalarmandroidoptions "Permanent link")

| Prop        | Type    | Description                                                                                                                                | Default | Since |
| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ----- |
| **skipUi**  | boolean | Whether or not to create the alarm without showing the user interface of the system clock app. Only available on Android.                  | false   | 0.1.0 |
| **vibrate** | boolean | Whether or not the alarm should vibrate. If not provided, the default behavior of the system clock app is used. Only available on Android. |         | 0.1.0 |

#### CreateTimerOptions[¶](#createtimeroptions "Permanent link")

| Prop         | Type                                                    | Description                                          | Since |
| ------------ | ------------------------------------------------------- | ---------------------------------------------------- | ----- |
| **android**  | [CreateTimerAndroidOptions](#createtimerandroidoptions) | Android-specific options. Only available on Android. | 0.1.0 |
| **duration** | number                                                  | The length of the timer in seconds (1-86400).        | 0.1.0 |
| **label**    | string                                                  | The label of the timer.                              | 0.1.0 |

#### CreateTimerAndroidOptions[¶](#createtimerandroidoptions "Permanent link")

| Prop       | Type    | Description                                                                                                               | Default | Since |
| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **skipUi** | boolean | Whether or not to create the timer without showing the user interface of the system clock app. Only available on Android. | false   | 0.1.0 |

#### GetAlarmsResult[¶](#getalarmsresult "Permanent link")

| Prop       | Type          | Description                              | Since |
| ---------- | ------------- | ---------------------------------------- | ----- |
| **alarms** | AlarmInfo\[\] | The alarms that were created by the app. | 0.1.0 |

#### AlarmInfo[¶](#alarminfo "Permanent link")

| Prop        | Type            | Description                         | Since |
| ----------- | --------------- | ----------------------------------- | ----- |
| **enabled** | boolean \| null | Whether or not the alarm is active. | 0.1.0 |
| **hour**    | number \| null  | The hour of the alarm (0-23).       | 0.1.0 |
| **id**      | string          | The unique identifier of the alarm. | 0.1.0 |
| **label**   | string \| null  | The label of the alarm.             | 0.1.0 |
| **minute**  | number \| null  | The minute of the alarm (0-59).     | 0.1.0 |

#### IsAvailableResult[¶](#isavailableresult "Permanent link")

| Prop          | Type    | Description                                         | Since |
| ------------- | ------- | --------------------------------------------------- | ----- |
| **available** | boolean | Whether or not alarms are available on this device. | 0.1.0 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### PermissionState[¶](#permissionstate "Permanent link")

`'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'`

### Enums[¶](#enums "Permanent link")

#### Weekday[¶](#weekday "Permanent link")

| Members       | Value       | Since |
| ------------- | ----------- | ----- |
| **Friday**    | 'FRIDAY'    | 0.1.0 |
| **Monday**    | 'MONDAY'    | 0.1.0 |
| **Saturday**  | 'SATURDAY'  | 0.1.0 |
| **Sunday**    | 'SUNDAY'    | 0.1.0 |
| **Thursday**  | 'THURSDAY'  | 0.1.0 |
| **Tuesday**   | 'TUESDAY'   | 0.1.0 |
| **Wednesday** | 'WEDNESDAY' | 0.1.0 |

## Alarms vs. Local Notifications[¶](#alarms-vs-local-notifications "Permanent link")

Alarms are not the same as local notifications. Use an alarm when the user must be interrupted at a specific time, and a local notification for everything else.

|                             | Alarm | Local Notification |
| --------------------------- | ----- | ------------------ |
| Breaks through Silent Mode  | ✅     | ❌                  |
| Breaks through Focus modes  | ✅     | ❌                  |
| Plays sound until dismissed | ✅     | ❌                  |
| Custom content and actions  | ❌     | ✅                  |

## Platform Support[¶](#platform-support "Permanent link")

The two platforms have fundamentally different alarm models, which this plugin exposes honestly instead of hiding behind a false abstraction:

* **Android**: Alarms and timers are created in the **system clock app** via the [AlarmClock](https://developer.android.com/reference/android/provider/AlarmClock) intent API. This is fire-and-forget: once created, the alarm belongs to the clock app and the OS offers no API to list or cancel it. The `createAlarm(...)` method therefore returns `null` as the alarm identifier, and `getAlarms()` and `cancelAlarm(...)` reject as unimplemented.
* **iOS (26+)**: Alarms are created with [AlarmKit](https://developer.apple.com/documentation/alarmkit) and are **owned by your app**: you can list them with `getAlarms()` and cancel them with `cancelAlarm(...)`. Timers created with AlarmKit require a Live Activity widget extension in the app, which is why `createTimer(...)` is currently not supported on iOS. The `openAlarms()` method is not supported on iOS because the system clock app cannot be opened via a public API.

| Method               | Android | iOS (26+) |
| -------------------- | ------- | --------- |
| cancelAlarm(...)     | ❌       | ✅         |
| checkPermissions()   | ✅       | ✅         |
| createAlarm(...)     | ✅       | ✅         |
| createTimer(...)     | ✅       | ❌         |
| getAlarms()          | ❌       | ✅         |
| isAvailable()        | ✅       | ✅         |
| openAlarms()         | ✅       | ❌         |
| requestPermissions() | ✅       | ✅         |

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/alarm/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/alarm/LICENSE).

July 7, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/alarm/#article", "headline": "Capacitor Alarm Plugin for Android & iOS", "name": "Capacitor Alarm Plugin for Android & iOS", "description": "Capacitor plugin to create real system alarms and timers on Android and iOS. iOS support requires iOS 26 or later using Apple's AlarmKit framework.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/alarm/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/alarm/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/alarm/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/alarm/#software", "name": "Capacitor Alarm Plugin for Android & iOS", "description": "Capacitor plugin to create real system alarms and timers on Android and iOS. iOS support requires iOS 26 or later using Apple's AlarmKit framework.", "url": "https://capawesome.io/docs/sdks/capacitor/alarm/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
```
