02.02.2014 | 19:16
Jel moguće nekako podesit da za svaki dodani event po defaultu budu 2 alerta: prvi 24h ranije te drugi 1h ranije?
Više ne nego da.
Standardno je moguće podesiti 1 defaultni alert, pri čemu je do 10.7 bilo moguće upisati proizvoljan broj minuta prije evente, a od 10.8 se može birati isključivo neka od predefiniranih postavki (od 5 minuta do 2 dana prije eventa). Na žalost, neovisno o verziji OS-a, nije moguće birati kojeg je tipa taj defaultni alert (defaultno je "Message with sound" ).
10.7 je zadnji OS X čiji je kalendar imao "Run script" tip alarma, s kojim je bilo moguće pokrenuti AppleScript. Na 10.7 moglo se editirati com.apple.iCal.plist, dodati "PersistentMenu-lastUsedAlarms" key i konfigurirati ga tako da se promijeni defaultni tip alarma. Zahvaljujući tome, rješenje tvog problema pod 10.7 bilo bi promijeniti defaultni tip alarma u "Run script" i predefinirati skriptu koju će kalendar sam zakačiti uz svaki event, kako bi se izvršila 24h prije eventa. Ta skripta bi trebala obaviti 3 zadatka:
1. alarmirati te na neki način da je preostalo 24h do eventa;
2. utvrditi koji event (u kalendaru) ju je pozvao, uspoređujući vlastito vrijeme izvršavanja s vremenima zadanim u eventima kalendara;
3. eventu (u kalendaru) koji ju je izvršio dodati novi alert, 1h prije samog eventa.
(1) i (3) su jednostavni zadaci, (2) je nešto kompleksniji.
Na 10.8+ ne postoji "Run script" tip alarma. Ali postoji "Open file" koji može pokrenuti bilo koju aplikaciju - što znači da bi ova 3 koraka gore trebala biti spakirana u aplikaciju, a ne u skriptu.
No, pravi problem je taj što trenutno graniči s nemogućim promijeniti defaultni tip alarma: došlo je do promjena u plisti, prefsi na 10.9 se cacheiraju, a i Calendar je u međuvremenu, za potrebe 10.9 i cloud syncanja, sandboxan, što dodano komplicira stvar.
U praksi, promjena bi se mogla obaviti u EventTimedAlarms.icsalarm datoteci. Potencijalno postoji po jedna za svaki kalendar (path je: /Users/<USERNAME>/Library/Calendars/<UID>.calendar/LocalDefaultAlarms/EventTimedAlarms.icsalarm), ali za nju ne postoji dokumentacija, a reverse engineering traži više vremena nego što tebi treba za pješke dodati drugi alarm.
Dok se netko time ne pozabavi (nije za očekivati da će Apple objaviti dokumentaciju), potencijalno rješenje je presretanje notifikacija koje Calendar šalje u Notification Center i nakon presretanja obaviti (2) i (3). Pritom bi se (1) obavio automatski. Na žalost, i ovaj pristup je "malo složeniji" za izvedbu pa će vjerojatno ostati na idejnom rješenju.