Address Book

Resources

Contact Sharing

Connecting to Exchange and Active Directory via LDAP

The only real problem is figuring out the correct naming context (abridged from this Mac OS X Hints article), which can be done by issuing:

ldapsearch -h your.exchange.server -x -b '' -s base '(objectclass=*)' 'namingContexts'

…and picking out the correct namingContext entry from the output. Bear in mind that on a multi-branch tree (like the ones in multinationals) you might not want to pick the shortest.

Listing Recently Modified Contacts

This (from this Mac OS X Hints article) is useful when keeping track of modifications done by syncing your address book with other sources:

(* Find recently modified entries in the Address Book

Input: a time interval (backwards from today) in the variable "daysBeforeToday"
Output: a string on the clipboard, format: YYYY-MM-DD (tab) Name (return)

©2009, Michael Bach, <www.michaelbach.de> *)

set daysBeforeToday to 7 -- <<<  change as desired or read from a dialog

tell application "Address Book"
  copy (current date) - daysBeforeToday * 24 * minutes * 60 to referenceDate
  copy (every person whose (modification date > referenceDate)) to modifiedPersons
  set s to ""
  repeat with aPerson in modifiedPersons
    set d to ((modification date) of aPerson) -- now change to international format and forget the hours
    set dateString to (year of d as string) & "-" & (my twoDigits((month of d) as number)) & "-" & (my twoDigits(day of d) as string)
    set s to s & dateString & tab & (name of aPerson) & return
  end repeat
  set the clipboard to s --for pasting into other applications
  s -- to view immediately in the script editor
end tell

on twoDigits(aNumber) -- trivial utility for formatting
  if aNumber < 10 then return "0" & (aNumber as string)
  return (aNumber as string)
end twoDigits

Enabling the Debug menu

defaults write com.apple.AddressBook ABShowDebugMenu -bool true

This page is referenced in: