Loading...
Loading...
AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 18+ apps.
npx skill4agent add rshankras/claude-code-apple-skills alarmkitWhat do you need?
|
+-- Schedule an alarm (one-time, repeating, or timer)
| --> scheduling.md
| +-- One-time alarm: Alarm.Schedule.relative + .repeats: .never
| +-- Repeating alarm: Alarm.Schedule.relative + .repeats: .weekly(weekdays)
| +-- Countdown timer: CountdownDuration (no schedule)
| +-- Authorization & Info.plist setup
| +-- Managing alarms: pause, resume, cancel
|
+-- Customize alarm UI (alert, countdown, paused screens)
| --> presentation.md
| +-- AlarmPresentation.Alert: title, stop, snooze/repeat buttons
| +-- AlarmPresentation.Countdown: title, pause button
| +-- AlarmPresentation.Paused: title, resume button
| +-- Custom buttons with AlarmButton
| +-- Tint color and metadata via AlarmAttributes
|
+-- Show alarm on Dynamic Island / Lock Screen
--> live-activities.md
+-- Widget extension with ActivityConfiguration
+-- AlarmAttributes conformance
+-- Custom AlarmMetadata protocol| API | Minimum Version | Reference |
|---|---|---|
| iOS 18 | scheduling.md |
| iOS 18 | scheduling.md |
| iOS 18 | presentation.md |
| iOS 18 | live-activities.md |
| iOS 18 | live-activities.md |
| iOS 18 | presentation.md |
| iOS 18 | scheduling.md |
| iOS 18 | scheduling.md |
| iOS 18 | scheduling.md |
| # | Mistake | Fix | Details |
|---|---|---|---|
| 1 | Using | The property is | scheduling.md |
| 2 | Forgetting | Add the key with a user-facing string before calling | scheduling.md |
| 3 | Creating countdown timer with a schedule | Timers use | scheduling.md |
| 4 | Missing widget extension for countdown presentations | Countdown and paused UI requires an | live-activities.md |
| 5 | Not persisting alarm UUIDs | Store the | scheduling.md |
| 6 | Not observing | Use the | scheduling.md |
NSAlarmKitUsageDescriptionrequestAuthorization().authorizationState.authorizationStatusalarmUpdatesschedule()pause()resume()cancel()| File | Content |
|---|---|
| scheduling.md | Authorization, one-time/repeating/timer creation, managing alarms, observing updates |
| presentation.md | Alert, countdown, paused UI customization, buttons, tint color |
| live-activities.md | Widget extension, AlarmAttributes, AlarmMetadata, Dynamic Island |