Fidèle lecteur de MacOSXHints, je suis tombé sur cette entrée qui m'a beaucoup plu ! Du coup, je partage avec vous cette astuce puisqu'apparemment Snow Léopard n'a pas ajouté cette lacune dans iCal.
D'ailleurs, attention avec Snow Léopard, il y a entre autres un bug fatal (merci Antoine) !

Inutile pour moi de vous expliquer le code ou m'en vanter, je vais juste vous filer le script qui m'a permis d'obtenir ce que j'ai sur ma capture d'écran :

(*
(c) Copyright 2007 Andrew Bussman
Edited by Joris Berthelot admin@eexit.net
*)

tell application "iCal"
	tell calendar "Anniversaires" -- Update this line depending on your system language
		set all_events to every event
		repeat with this_event in all_events
			tell this_event
				delete every sound alarm
				delete every display alarm
				
				-- Adds a sound alarm 10 days before
				-- make new sound alarm at end with properties {trigger interval:-14400, sound name:"Basso"}
				
				-- Adds message alarm the previous day at 12:00
				make new display alarm at end with properties {trigger interval:-720}
				
				-- Adds message alarm the d-day at 12:00
				make new display alarm at end with properties {trigger interval:720}
			end tell
		end repeat
	end tell
end tell

Ouvrez donc l'éditeur de scripts (Applications/AppleScript/Editeur de Scripts), créez un nouveau script et collez-y le code précédent. Sauvegardez si nécessaire et exécutez accessoirement.
A la fin de l'accomplissement du script, vous devriez avoir un truc du genre dans l'onglet « Résultat » :

display alarm 2 of event id "4B0738E8-46ED-40FA-9FB3-98998596D61E" of calendar id "0D96618C-7C95-41F7-80AC-E88A41BDC66F" of application "iCal"

Si vous désirez modifier le script, vous devez copier le précédent code source et recompiler l'application.

Bonne journée !


Joris Berthelot