---
title: Alarm
framework: alarmkit
role: symbol
role_heading: Structure
path: alarmkit/alarm
---

# Alarm

An object that describes an alarm that can alert once or on a repeating schedule.

## Declaration

```swift
struct Alarm
```

## Overview

Overview The following is an example of a 10 second timer: let configuration = AlarmManager.AlarmConfiguration(     countdownDuration: Alarm.CountdownDuration(preAlert: 10, postAlert: 10),     schedule: nil,     attributes: attributes,     secondaryIntent: repeatIntent,     sound: .default) The following is an example of an alarm that includes a 9 minute snooze option and plays the default sound: let configuration = AlarmManager.AlarmConfiguration(     countdownDuration: Alarm.CountdownDuration(preAlert: nil, postAlert: 9 * 60),     schedule: .relative(schedule),     attributes: attributes,     secondaryIntent: snoozeIntent,     sound: .default)

## Topics

### Defining a countdown duration

- [Alarm.CountdownDuration](alarmkit/alarm/countdownduration-swift.struct.md)
- [countdownDuration](alarmkit/alarm/countdownduration-swift.property.md)
- [id](alarmkit/alarm/id.md)
- [Alarm.State](alarmkit/alarm/state-swift.enum.md)
- [state](alarmkit/alarm/state-swift.property.md)

### Setting an alarm schedule

- [Alarm.Schedule](alarmkit/alarm/schedule-swift.enum.md)
- [schedule](alarmkit/alarm/schedule-swift.property.md)

## Relationships

### Conforms To

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Identifiable](swift/identifiable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Alarm management

- [Scheduling an alarm with AlarmKit](alarmkit/scheduling-an-alarm-with-alarmkit.md)
- [AlarmManager](alarmkit/alarmmanager.md)
