/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
Kopiering af abonnerede kalendere iCal->iP~
Fra : Per Rønne


Dato : 20-09-08 15:58

Jeg er som alternativ til BusySync stødt på følgende script der
foretager kopieringen:

<http://www.macosxhints.com/article.php?story=20080914052704468&query=iP
hone>

(*
Script to duplicate Calendar orgCalendar into target dupCalendar
E.H. 12.9.2008
*)

property myCopies : 0
property myUpdates : 0
property myObsoletes : 0
property orgCalendar : "Sekretariat"
property dupCalendar : "Sekretariat copy"
property dupEvents : {}
property myDeletes : {}

set myCopies to 0
set myUpdates to 0
set myObsoletes to 0
set dupEvents to {}


tell application "iCal"

-- set theCalendars to every calendar
set theCalendarNames to title of every calendar
set theOrgCalendar to a reference to calendar orgCalendar

if theCalendarNames contains dupCalendar then
set theCalendar to a reference to calendar dupCalendar
else
set theCalendar to make new calendar with properties
{title:dupCalendar}
--set theCalendar to make new calendar with properties
{title:dupCalendar, color:"{65535, 0, 0}"}
end if

set the eventList to uid of every event of theOrgCalendar as list
set the eventCount to the count of the eventList

repeat with theUId in eventList
tell theOrgCalendar
set theEvent to (the first event whose uid is theUId)
-- set theProperties to the properties of theEvent as record
set theDate to the start date of theEvent
set theSummary to the summary of theEvent
set theStampDate to the stamp date of theEvent
end tell

tell theCalendar
try
set theOldEvent to (the first event of theCalendar whose
(start date) is theDate as date)
set similar_found to true
on error
set similar_found to false
set theEndDate to the end date of theEvent
set theAllDay to the allday event of theEvent
set theLocation to the location of theEvent
-- Funny construction to work araund the fact that
location may be missing a value
try
if theLocation is equal to "" then
end if
on error
set theLocation to ""
end try
set theDescription to the description of theEvent
try
if theDescription is equal to "" then
end if
on error
set theDescription to ""
end try
if theAllDay is true then -- work around a funny bug
with all day events
set theDate to (theDate as date) + 2 * hours
set theEndDate to (theEndDate as date) + 2 * hours
end if
set newEvent to make new event at end with properties
{summary:theSummary, location:theLocation, start date:theDate, end
date:theEndDate, allday event:theAllDay, description:theDescription}
-- make new event at end with properties theProperties
set the end of dupEvents to (the uid of newEvent)

set myCopies to (myCopies + 1)
end try
end tell

set second_necessary to false
if similar_found is true then
set theOldSummary to the summary of theOldEvent
if theSummary is not equal to theOldSummary then
--is there a different one?
try
set theOldEvent1 to (the second event of theCalendar
whose (start date) is theDate as date)
set theOldSummary to the summary of theOldEvent1
if theSummary is equal to theOldSummary then
set theOldEvent to theOldEvent1
set the end of dupEvents to (the uid of
theOldEvent)
else
-- cycle repeat ?
end if
on error
-- beep
try
set theEvent1 to (the second event of
theOrgCalendar whose (start date) is theDate as date)
set second_necessary to true
on error
set the end of dupEvents to (the uid of
theOldEvent)
end try
end try
else
set the end of dupEvents to (the uid of theOldEvent)
end if

if second_necessary is true then
set theEndDate to the end date of theEvent
tell theCalendar
set theOldEvent to make new event at end with
properties {summary:theSummary, start date:theDate, end date:theEndDate}
end tell
set the end of dupEvents to (the uid of theOldEvent)
end if

set theOldStampDate to the stamp date of theOldEvent
if theStampDate is greater than theOldStampDate then
-- update the event
set summary of theOldEvent to theSummary --
capitalization may have changed
set theAllDay to the allday event of theEvent
set allday event of theOldEvent to theAllDay
set theEndDate to the end date of theEvent
if theAllDay is true then -- work around a funny bug
with all day events
set theEndDate to (theEndDate as date) + 2 * hours
end if
set end date of theOldEvent to theEndDate
set theDescription to the description of theEvent
try
if theDescription is equal to "" then
end if
on error
set theDescription to ""
end try
set description of theOldEvent to theDescription

set myUpdates to myUpdates + 1
end if
end if

end repeat
end tell

-- Delete obsolete events

set myObsoletes to 0
set myDeletes to {}

tell application "iCal"
set myUIDs to uid of events of theCalendar
end tell

repeat with myUID in myUIDs
if dupEvents does not contain myUID then
set the end of myDeletes to myUID
set myObsoletes to (myObsoletes + 1)
end if
end repeat

tell application "iCal"
repeat with myDel in myDeletes
delete (every event of theCalendar whose uid is myDel)
end repeat
end tell

-- delete duplicates

set myDeletes to {}

tell application "iCal"
set myStarts to start date of events of theCalendar
set mySummaries to summary of events of theCalendar
set myUIDs to uid of events of theCalendar
set myLength to length of myUIDs
end tell

repeat with i from 1 to (myLength - 1)
set thisStart to (item i of myStarts)
set thisSumm to (item i of mySummaries)
repeat with j from (i + 1) to myLength
set thatStart to (item j of myStarts)
set thatSumm to (item j of mySummaries)
if thisSumm is equal to thatSumm and thisStart is equal to
thatStart then
set the end of myDeletes to (item j of myUIDs)
exit repeat
end if
end repeat
end repeat

set n to count of myDeletes

tell application "iCal"

repeat with myDel in myDeletes
delete (every event of theCalendar whose uid is myDel)
end repeat

-- set the visible of calendar theCalendar to false

end tell

display dialog (myCopies & " records duplicated, " & myUpdates & "
records updated and " & myObsoletes & " obsolete ones deleted") as text

--
Per Erik Rønne
http://www.RQNNE.dk

 
 
Peter Farsinsen (20-09-2008)
Kommentar
Fra : Peter Farsinsen


Dato : 20-09-08 16:12

Per Rønne wrote:
> Jeg er som alternativ til BusySync stødt på følgende script der
> foretager kopieringen:
>
> <http://www.macosxhints.com/article.php?story=20080914052704468&query=iP
> hone>

En enkelt note.

Scriptet er enormt dårligt til at håndtere f.eks. Birthdays kalenderen,
som kan dannes fra data gemt i Address Book. Hvis man vil bruge scriptet
til at synkronisere fødselsdage til iPhone, skal der tweakes lidt...

Jeg har ikke selv haft tid til at kigge på det endnu, så post gerne
ændringer, hvis nogen gør det.

--
Peter Farsinsen
fornavn@efternavn.dk

Per Rønne (20-09-2008)
Kommentar
Fra : Per Rønne


Dato : 20-09-08 16:32

Peter Farsinsen <fornavn@efternavn.dk> wrote:

> Per Rønne wrote:
> > Jeg er som alternativ til BusySync stødt på følgende script der
> > foretager kopieringen:
> >
> > <http://www.macosxhints.com/article.php?story=20080914052704468&query=iP
> > hone>
>
> En enkelt note.
>
> Scriptet er enormt dårligt til at håndtere f.eks. Birthdays kalenderen,
> som kan dannes fra data gemt i Address Book. Hvis man vil bruge scriptet
> til at synkronisere fødselsdage til iPhone, skal der tweakes lidt...

OK; jeg kiggede det ikke engang igennem.

> Jeg har ikke selv haft tid til at kigge på det endnu, så post gerne
> ændringer, hvis nogen gør det.


--
Per Erik Rønne
http://www.RQNNE.dk

Ukendt (21-09-2008)
Kommentar
Fra : Ukendt


Dato : 21-09-08 18:45

On 2008-09-20 16:58:08 +0200, per@RQNNE.invalid (Per Rønne) said:

> Jeg er som alternativ til BusySync stødt på følgende script der
> foretager kopieringen:
>
> <http://www.macosxhints.com/article.php?story=20080914052704468&query=iP
> hone>

Jeg mener da, at en kalender jeg abonnerer på, kan overføres via iTunes
til iPhonen. På iphonen kan jeg se aftalerne, men når jeg vælger en, så
er "rediger"-knappen forsvundet.

Det var sådan jeg fik ugedage på den i går.

Men om det er noget helt nyt, ved jeg ikke.

mvh. Joakim


Henrik Münster (22-09-2008)
Kommentar
Fra : Henrik Münster


Dato : 22-09-08 01:26

<JHP> wrote:

> Jeg mener da, at en kalender jeg abonnerer på, kan overføres via iTunes
> til iPhonen. På iphonen kan jeg se aftalerne, men når jeg vælger en, så
> er "rediger"-knappen forsvundet.
>
> Det var sådan jeg fik ugedage på den i går.
>
> Men om det er noget helt nyt, ved jeg ikke.

Hvis du synkroniserer med kabel, virker det sådan. Det er, når man
synkroniserer trådløst via MobileMe, at abonnerede kalendere ikke kommer
med.
--
Henrik Münster
Esbjerg
Danmark

Ukendt (21-09-2008)
Kommentar
Fra : Ukendt


Dato : 21-09-08 18:48

On 2008-09-20 16:58:08 +0200, per@RQNNE.invalid (Per Rønne) said:

> Jeg er som alternativ til BusySync stødt på følgende script der
> foretager kopieringen:
>
> <http://www.macosxhints.com/article.php?story=20080914052704468&query=iP
> hone>

Forøvrigt, så kan man eksportere en kalender man abonnerer på, og så
importere den igen som en normal lokal kalender. Så har man kopieret
fra en abonneret kal. til en normal kalender.
Man kan også gøre det med almindelige kalendere.

mvh. Joakim


Henrik Münster (22-09-2008)
Kommentar
Fra : Henrik Münster


Dato : 22-09-08 01:26

<JHP> wrote:

> Forøvrigt, så kan man eksportere en kalender man abonnerer på, og så
> importere den igen som en normal lokal kalender. Så har man kopieret
> fra en abonneret kal. til en normal kalender.
> Man kan også gøre det med almindelige kalendere.

Det var måske en mulighed, men så er kalenderen vel statisk? Det kan jo
bruges til helligdage og ugenumre, men hvis en kollega eller en
organisation fører kalender over møder og den slags, som jævnligt skal
opdateres, så skal man lave nummeret, hver gang der er en ændring. Er
det ikke rigtigt?
--
Henrik Münster
Esbjerg
Danmark

Per Rønne (22-09-2008)
Kommentar
Fra : Per Rønne


Dato : 22-09-08 05:22

Henrik Münster <henrik@muenster.dk> wrote:

> <JHP> wrote:
>
> > Forøvrigt, så kan man eksportere en kalender man abonnerer på, og så
> > importere den igen som en normal lokal kalender. Så har man kopieret
> > fra en abonneret kal. til en normal kalender.
> > Man kan også gøre det med almindelige kalendere.
>
> Det var måske en mulighed, men så er kalenderen vel statisk? Det kan jo
> bruges til helligdage og ugenumre, men hvis en kollega eller en
> organisation fører kalender over møder og den slags, som jævnligt skal
> opdateres, så skal man lave nummeret, hver gang der er en ændring. Er
> det ikke rigtigt?

Det er korrekt - og det er jo ikke smart.

I øvrigt mangler der muligheden for delte kalendere, hvor mere end en
person kan gå ind og ændre i dem. Eventuelt bare at tilføje aftaler.
--
Per Erik Rønne
http://www.RQNNE.dk

Henrik Münster (22-09-2008)
Kommentar
Fra : Henrik Münster


Dato : 22-09-08 08:22

Per Rønne <per@RQNNE.invalid> wrote:

> Henrik Münster <henrik@muenster.dk> wrote:
>
> > Det var måske en mulighed, men så er kalenderen vel statisk? Det kan jo
> > bruges til helligdage og ugenumre, men hvis en kollega eller en
> > organisation fører kalender over møder og den slags, som jævnligt skal
> > opdateres, så skal man lave nummeret, hver gang der er en ændring. Er
> > det ikke rigtigt?
>
> Det er korrekt - og det er jo ikke smart.

Nej, men det er da ganske velegnet til ugenumre og helligdage.

> I øvrigt mangler der muligheden for delte kalendere, hvor mere end en
> person kan gå ind og ændre i dem. Eventuelt bare at tilføje aftaler.

Det kan man jo bl.a. med BusySync, hvilket vi gerne udnytter hjemme hos
os. Jeg har sådan lidt fået det indtryk, at det mest er mig, der er
interesseret i at føre kalender for vores familie. Det er nu ikke værre,
end at de er meget taknemmelige for, at jeg har styr på tingene, men de
gider ikke rigtig skrive eller læse i kalenderen.
--
Henrik Münster
Esbjerg
Danmark

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408930
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste