Snyggare födelsedagar i iCal och iPhone/iPod touch
2010-02-26 - ical, applescript, födelsedag
0
Uppdaterad! Nu stöder scriptet även "custom dates" i Adressboken och lägger in årsdagar för de personer du har definierat ett datum
calendar
iCal har en funktion där du kan skapa en kalender med födelsedagar från adressboken, vilket ju är riktigt trevligt. Men en nackdel med det är att den larmar inte, den visar inte hur mycket dom fyller och ännu viktigare - den synkar inte med iPhone/iPod. Så det måste vi fixa, eller hur?
birthdays.scpt
property tDate : current date -- These are the groups of a person that will have an alarm attached to their reminder property alarmGroups : {"Family", "Friends"} -- This is the name of the calendar in which the dates should be added property calName : "Dagar" -- First, lets empty the calendar tell application "iCal"   delete every event of (item 1 of (calendars whose title is "Dagar")) end tell tell application "Address Book"   set theList to every person   repeat with i in theList     if exists birth date of i then       set myName to name of i       set myDate to birth date of i       set age to (year of tDate) - (year of myDate)       set mylabel to myName & " " & age & " år"       set willAlarm to false       set tGroups to name of every group of i       repeat with g in alarmGroups         if g is in tGroups then           set willAlarm to true         end if       end repeat             my insertBirthday(mylabel, myDate, willAlarm)     end if     set cDates to custom dates of i     repeat with c in cDates       set myDate to value of c       set yearCount to (year of tDate) - (year of myDate)       set mylabel to "År " & yearCount & ": " & myName & ", " & label of c       my insertBirthday(mylabel, myDate, true)     end repeat   end repeat end tell on insertBirthday(Label, myDate, willAlarm)   tell application "iCal"     set startDate to tDate     set month of startDate to month of myDate     set day of startDate to day of myDate     set time of startDate to 0     set stampDate to startDate - 432000     set endDate to startDate + 86400     set tCal to (item 1 of (calendars whose title is "Dagar"))     set theEvent to make new event at the end of events of tCal with properties {start date:startDate, end date:endDate, summary:Label, allday event:true}     if willAlarm is true then       set nAlarm to make new display alarm at the end of display alarms of theEvent with properties {trigger interval:-3600}       set nAlarm to make new display alarm at the end of display alarms of theEvent with properties {trigger interval:480}     end if   end tell end insertBirthday
Ovanstående AppleScript kommer skapa inlägg i iCal för de födelsedagar du har i adressboken. Men innan du börjar så måste du förbereda lite. Starta iCal och skapa en ny kalender som du kallar för "Dagar" (alternativt att du kallar den vad du vill men ändrar i scriptet på två ställen). Annars har scriptet ingenstans att lägga födelsedagarna i.
Sen bör du notera att lite senare i scriptet så skapar den ett alarm om kontakten finns i en speciell grupp i adressboken - i mitt fall grupperna "Family" och "Friends". Redigera dessa namn i scriptet om du kallar grupperna något annat. Detta för att iCal inte ska larma om varenda kontakt, utan bara dem man har i vissa grupper. Använder du inte grupper så kan detta vara ett bra tillfälle att börja. Larmet scriptet lägger till larmar tre dagar innan födeledagen samt samma dag kl 8 på morgonen.
Scriptet skriver till och med hur mycket dom fyller år, fantastiskt vad man kan göra med dagens teknik. Så, kopiera, klistra in i Script Editor och kör hårt. Hojta till i kommentarerna om det är något som inte fungerar som det ska.

Custom Dates

Adressboken i Mac OS X har något som heter "custom dates". Du kan gå in i menyn Card och om du där lägger till ett datum för en person och en "Custom..." label (eller behåller "anniversary") så kommer scriptet att lägga in det här datumet i din kalendet med, med ett larm. Så om du skriver in "Träffades" på datumet "2000-01-01" för din flickvän så kommer scriptet skapa en event första januari som heter "År 10: Förnamn Efternamn, Träffades" och larma tre dagar innan. Smidigt!

Bara folk från en viss grupp?

Om du inte vill ha in alla människor i adressboken i iCal så kan du begränsa urvalet till bara en viss grupp, genom att ändra den här raden:
set theList to every person
Till detta, och ändra "Family" till namnet på den grupp du vill importera:
set theList to every person of (every group whose name is "Family")
Lite imponerad hur mycket Apple Watch kan hålla reda på bär man simmar faktiskt
Får lite välbehövlig hjälp att fixa med elen i verkstaden
Improvisationsteater på Västmanlandsteatern. Lika delar pinsamt och skoj :)
Har ryggskott som börjar bli bättre. Nyser nu på morgonen och det hugger till i ryggen och gör ont som fan. Kollapsar på golvet, och när jag reser mig upp så har jag råkat få igång Siri som tror sig ha hört detta. Ok, det gör ont som fan, men jag är ok, Siri :)
Har en trappa hemma som måste renoveras, menrenoveringskit är dyra som tusan, tanken är att jag ska bygga eget renoveringskit, får se hur det går…
Bakbunden
Även en ordentlig geringsfräs för att kunna bygga hållbara trappnosar
Har införskaffat mig en planopress inför kommande bordsprojekt samt ett test för en trapprenovering.
Byggde en pokalhylla till dotterns alla danspokaler
Pricken över i:et :)
Bakbord
Nytt projekt på gång, bakbord till svärfar :)
“Gå och lägg dig” - ”Nej jag kollar på TV med Leia” :)
Extrabord till jul
Extrabord till julafton klart! Byggvideo kommer inom kort på min youtube :)
Weehoo, jag har en egen stämpel nu. Det ni!
Bordskiva oljad och vaxad, ben borstade och betsade. Kanske blir ett bord till slut?
Bordsskiva betsad. Ska slipas/borstas och sen oljas.
Renoverat vardagsrumsbord
Favoritbild från dansuppvisningen igår
Nattduksbord
PanPastel-porträtt
Crock Pot
PanPastel
Tron för Sigge
Road Trip Italien!
Verkstad Remake
Jonas och Jenna
Brud som chillar
Showing off
Undressing
Touch thyself
Hot Love
Profilporträtt
Resa utan kamera?
Paus
Supernöjd med folieringen!
Bilen ska folieras!
Ny såg
PHP och BankID
Jack Skellington
Verkstadsplaner
Magnettavla
Verandatak och grillhörna!
Vardagsrumsbord
Knivblock
Kökshylla
Ny ikon för karta
PC-bygge
Kerlee 35mm f/1.2
Objektivhylla
Natalie Dormer
Hållare till kattmatsskålar
Hälsningar från Norge
With a little help from my friends...
The Most Incredible Fantasy Maps You've Ever Seen
Cityfestivalen
Mitakon Speedmaster 50mm/f0,95
10 minuter vatten
Sony A7R II
Petzval 58 Bokeh Control Art Lens
Scrawlrbox
Nya skärmar till jobbet
Nikon Df - ny leksak
Boba Fett
First Order Storm Trooper
Mikisen
#inlineditbutton