(* 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