Skip to content

BusyContacts

BusyContacts is a contacts app for macOS. Protocol Launcher allows you to generate official BusyContacts URL handler links.

Usage

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

BusyMac documents busycontacts://show/, busycontacts://open/, busycontacts://new/, busycontacts://filter/, and busycontacts://backup. This module only covers those documented handlers.

Show

Show a contact by UID, X-ABUID, or email address.

On-Demand
ts
import { show } from 'protocol-launcher/busycontacts'

const url = show({
  identifier: 'test@apple.com',
})

Open Contact

Open a contact in a separate floating window.

On-Demand
ts
import { openContact } from 'protocol-launcher/busycontacts'

const url = openContact({
  identifier: 'B8FB81A6-659D-4E66-B1B7-97A95A144C83:ABPerson',
})

New Contact

Create a new contact from BusyContacts' natural language string. Include an address book hint in the same string with the documented /Hint suffix.

On-Demand
ts
import { newContact } from 'protocol-launcher/busycontacts'

const url = newContact({
  text: 'Bob Jones 555-1212',
})

Select Filter

Select a BusyContacts Smart Filter by exact name.

On-Demand
ts
import { selectFilter } from 'protocol-launcher/busycontacts'

const url = selectFilter({
  name: 'friends',
})

Backup

Create a backup in BusyContacts' configured default backup location. Because this triggers a background backup, the docs show the generated string without a launch button.

On-Demand
ts
import { backup } from 'protocol-launcher/busycontacts'

const url = backup()

Generated URLs

ts
show({ identifier: 'test@apple.com' })
// => 'busycontacts://show/test@apple.com'

show({ identifier: 'f90221ac-84a8-4f40-a699-5930b59a24d1' })
// => 'busycontacts://show/f90221ac-84a8-4f40-a699-5930b59a24d1'

openContact({ identifier: 'B8FB81A6-659D-4E66-B1B7-97A95A144C83:ABPerson' })
// => 'busycontacts://open/B8FB81A6-659D-4E66-B1B7-97A95A144C83:ABPerson'

newContact({ text: 'Bob Jones 555-1212' })
// => 'busycontacts://new/Bob%20Jones%20555-1212'

newContact({ text: 'Bob Jones 123 Main Street, Anytown USA /iCloud' })
// => 'busycontacts://new/Bob%20Jones%20123%20Main%20Street,%20Anytown%20USA%20/iCloud'

selectFilter({ name: 'friends' })
// => 'busycontacts://filter/friends'

selectFilter({ name: 'Team Contacts' })
// => 'busycontacts://filter/Team%20Contacts'

backup()
// => 'busycontacts://backup'

References