Want to offer native, in-app customer service to your users? Get going quickly with Zendesk’s Mobile SDK. Save $177 with coupon code LBOC.


#97: EventKit Alarms πŸ“…β°


EventKit Alarms are how we configure notifications and alerts that will be triggered to remind the user about calendar events or reminders.

Like in Bite #96, we'll use Timepiece (Bite #3) to help us compose dates. We'll create an event for when our cookies will be done baking. The event will start in 12 minutes, and we'll add a new EKAlarm to it that triggers 5 seconds before the event. Alarms can be created with at absolute or relative times.

let e = EKEvent(eventStore: eventStore)

e.startDate = NSDate() + 12.minutes
e.endDate = e.startDate + 30.seconds
e.calendar = eventStore.defaultCalendarForNewEvents
e.title = "Cookies are Done! πŸͺ"

e.addAlarm(EKAlarm(relativeOffset: -5.0))

try eventStore.saveEvent(e, span: .ThisEvent)

Interestingly, OS X is actually ahead of iOS here. EKAlarm on OS X **has more **properties for configuring a sound to play, an email address to notify and more.

Now when we get to Disneyland, the alarm will remind us to head over to . (Just an example, in real life we'd never need the reminder).

Things get more fun when adding alarms to reminders. Let's finish by adding an alarm to a new reminder that triggers when the user arrives somewhere:

let reminder = EKReminder(eventStore: eventStore)

reminder.title = "Ride Star Toursβ€œ
reminder.calendar = eventStore.defaultCalendarForNewReminders()

let location = EKStructuredLocation(title: "Disneyland")
location.geoLocation = CLLocation(
  latitude: 33.8120918, longitude: -117.9189742

let alarm = EKAlarm()

alarm.structuredLocation = location
alarm.proximity = .Enter


try eventStore.saveReminder(reminder, commit: true)

Similar Bites