• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: iCal alarm scripts
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: iCal alarm scripts


  • Subject: Re: iCal alarm scripts
  • From: Josh Tishhouse <email@hidden>
  • Date: Fri, 15 Jan 2010 11:27:29 -0500

How do I separate out the resultant set (event, Calendar)?

I thought I'd try this:

set AppleScript's text item delimiters to {","}
set theEvent to item 1 of candidates

But that didn't work.

-Josh (Applescript n00b)


On Jan 11, 2010, at 2:30 PM, Nigel Garvey wrote:

> Paul Berkowitz wrote on Sun, 10 Jan 2010 21:33:49 -0800:
>
>> The only way to get a rough-and-ready hope of a solution here would be to
>> get (current date), set a variable (say theTime) to it, then set the seconds
>> of theTime to 0. (It's probably been a few seconds since the alarm was
>> called, and in any case, the alarm would set to the minute, not second.)
>>
>> Then go through every calendar, checking for 'every event whose start time „
>> theTime' (which could be a LOT of events). Then go through every such event,
>> getting 'every display alarm of it whose trigger date = theTime', same for
>> every sound alarm, etc, and every type of alarm which you expect or use.
>> Hopefully, there's only one alarm that went off at exactly that time, so you
>> can probably quite the two repeat loops (events and calendars) when you find
>> one. Then get the summary of the event in question and that's your answer.
>>
>> It could give you the wrong answer if there's more than one alarm that went
>> off at the same time (or else, don't quit the repeat loop but get all of
>> them), and it could take a very long time.
>>
>> Frankly, I don't think it's worth it.
>
> An alternative which _might_ be a bit faster would be to ask iCal for
> the 'open file alarms of events of calendars whose filepath is [URL of
> the script file]'. This returns an AppleScript list of lists of lists,
> the innermost lists of which contain either nothing or just the alarms
> which trigger the script. Iterating through the lists should be faster
> than iterating through the application and only the presented alarms
> need be checked. The relevant calendars and events can be referenced
> through the index values of the loop variables. As with Paul's outline,
> this does _not_ work with repeated events.
>
>  on myEvent()
>    set now to (current date)
>    set leeway to 5 -- Allow, say, 5 seconds for the script to respond
> to the alarm.
>
>    tell application "System Events" to set myUrl to URL of (path to me)
>
>    tell application "iCal" to set myInstances to (open file alarms of
> events of calendars whose filepath is myUrl)
>    return result
>    --> A list containing lists corresponding to the calendars,
> containing lists
>    --> corresponding to the events, containing nothing or matching alarm(s).
>
>    set evntCal_Indices to {}
>    repeat with c from 1 to (count myInstances)
>      set thisCal to item c of myInstances
>      repeat with e from 1 to (count thisCal)
>        set thisEvnt to item e of thisCal
>        repeat with alrm from 1 to (count thisEvnt)
>          tell application "iCal" to set timeDiff to (start date of
> event e of calendar c) + (trigger interval of item alrm of thisEvnt) *
> minutes - now
>          if (timeDiff > -leeway) and (timeDiff < leeway) then set end
> of evntCal_Indices to {e, c}
>        end repeat
>      end repeat
>    end repeat
>
>    return evntCal_Indices -- event/calendar index pairs.
>  end myEvent
>
>  set candidates to myEvent()
>  --> {{11, 4}} -- One candidate found: event 11 of calendar 4.
>
>
> NG _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> AppleScript-Users mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> Archives: http://lists.apple.com/archives/applescript-users
>
> This email sent to email@hidden

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden

  • Follow-Ups:
    • Re: iCal alarm scripts
      • From: "Nigel Garvey" <email@hidden>
References: 
 >Re: iCal alarm scripts (From: "Nigel Garvey" <email@hidden>)

  • Prev by Date: Re: How to Control Garageband With Applescript
  • Next by Date: A bug and an annoying behavior related to Spaces
  • Previous by thread: Re: iCal alarm scripts
  • Next by thread: Re: iCal alarm scripts
  • Index(es):
    • Date
    • Thread