Hi Dan,
To do this with Applescript is not as easy as it should be. Here is a script originally posted by Austin Kinsella1 a few years ago (see Re: iCal Alarm - Pass Event data to AppleScript? ). I cannot check if it works on the current iCal, but I believe it will. I would modify it to only look in the calendar I know the events will be in.
Best wishes
John M
(*
called from iCal as on alarm, will speak the title of the alarm event
won't work for repeating events
AK ITCarlow Nov 2004
*)
set Now to current date
-- Adjust FuzzSeconds to suit; if too big, close events will speak several times
set FuzzSeconds to 15
tell application "iCal"
set MyEvents to every event of every calendar where ((start date of it) ≥ (current date))
repeat with ThisEvent in MyEvents--scan the list looking for events that have triggered us
try
set MinutesBefore to (trigger interval of open file alarm of ThisEvent) as number
set TriggerInt to (Now - ((start date of ThisEvent) + 60 * MinutesBefore)) --notionally 0 for firing event
if (TriggerInt < FuzzSeconds) and (TriggerInt > (-FuzzSeconds)) then
say (summary of ThisEvent as text) & " at " & (start date of ThisEvent as text)
-- ThisEvent should a reference to the event,
-- so you should be able to get the start date from it.
-- You may want to do some checking first.
end if
end try
end repeat
end tell