Guides and Sample Code

Developer

macOS Human Interface Guidelines

iBooks
On This Page

Accessing User Data

Calendar Data

Calendar helps people manage their schedules and create and respond to events. You can integrate Calendar information into your app so that users don’t need to look up or reenter information. With the Event Kit framework, you can access users’ events and create, edit, or delete new events. See Calendar and Reminders Programming Guide for more information.

Don’t modify a user’s Calendar data without permission. Before creating, editing, or deleting a user’s event, make sure you get permission from the user. Additionally, when you perform operations on a group of events that result in significant changes to the user’s Calendar, make sure the user is fully informed of the action your app is about to perform.

Using Reminders, people keep track of tasks, to-do items, and events. Users specify the time and location of a reminder, set an alarm, and mark it completed when it’s finished. Using the Event Kit framework, you can access users’ reminders, and create, edit, or delete new reminders. Reminders and Calendars use the same framework and access the same Calendar database. See Calendar and Reminders Programming Guide for more information.

Don’t modify a user’s Reminder data without permission. Before creating, editing, or deleting a user’s reminder, make sure you get permission from the user. Additionally, when you perform operations on a group of reminders that result in significant changes to the user’s data, make sure the user is fully informed of the action your app is about to perform.

Contacts Data

Contacts helps users keep track of their contacts, storing information such as names, phone numbers, fax numbers, and email addresses. Users appreciate apps that access this information automatically so that they don’t have to look it up or reenter it more than necessary.

When you use the Address Book framework, you can access contact information from the user’s database or display it in a customizable window within your app. You can also customize the user’s Contacts experience by supplying a plug-in that performs an action when users Control-click a labeled item, such as a name or phone number.

One way to customize a contact-information window is to display only the data relevant to your app. For example, Mail customizes this window to focus on the email addresses of the contacts.

The following guidelines help you provide a good user experience as you integrate Contacts information in your app and develop action plug-ins.

Don’t use developer terms in your UI. In particular, don’t use the terms people picker or picker. Although the Address Book framework uses these terms, they are not suitable user terms. Additionally, you should name a custom contact-information window in a way that describes its contents as they relate to your app, such as Addresses or Contacts. (To learn about additional terms that you should avoid in your UI, see Use User-Oriented Terminology.)

Limit to a single window new UI that’s displayed by an action plug-in. For example, the Large Type action uses a very large font to display the selected phone number in a single window. If you develop an action that needs to do more than display information in a single window, it should launch a separate app.

Don’t add UI to the Contacts app itself. In particular, there is no reason to add a pane to Contacts preferences. Instead, use the Contacts programming interfaces to make sure that your action plug-in name appears in the contextual menu users see when they Control-click an item.

To learn more about working with the Address Book framework, see Address Book Programming Guide for Mac.