Script zum iCal-Kalenderexportieren funktiert nicht (mehr) sauber

robert170

Aktives Mitglied
Thread Starter
Dabei seit
29.12.2006
Beiträge
783
Reaktionspunkte
25
Hallo,
ich hatte vor einiger Zeit mal (mit Hilfe von anderen, bin selbst nicht so der Syntax-Fachmann) ein Script gebastelt, dass den Kalender beim ersten Öffnen an einem Datum exportiert.
(Hintergrund ist eine langsame Internetverbindung, wenn man das auf "Änderungen automatisch veröffentlichen" stellt, macht er das bei jedem ändern und man kann kaum vernünftig dran arbeiten).
Die Idee ist, dass man zum öffnen des Kalenders nur noch das Script benutzt.

Irgendwie funktioniert das aber nicht mehr so ganz und frage mich, ob jemand eine Idee hat, woran das liegen könnte, im Moment läuft der Rechner unter 10.6.8.
Hier das Skript:

property lastOpened : ""
set curDate to (do shell script "date \"+%Y-%m-%d\"")
if curDate is lastOpened then
tell application "iCal" to view calendar at (current date)
else
tell application "iCal"
view calendar at (current date)
delay 1
tell application "System Events"
tell process "iCal"
keystroke "r" using {command down, shift down}
end tell
end tell
end tell
end if
set lastOpened to curDate
 
Aha. Und was funktioniert nicht mehr "sauber" und welches Nichts fand zwischen "geht wie gewünscht" und "geht nicht mehr" statt? :suspect:
 
sorry, muss am Wochenende liegen :rolleyes:
Das Skript öffnet zwar den Kalender, aber veröffentlicht ihn nicht, auch wenn es das erste Öffnen am Tag ist...
 
Das Skript exportiert den Kalender nicht, sondern aktualisiert ihn. Meintest du das?
 
Wenn Du das meinst mit "nicht mehr sauber" - ja, dann meine ich das auch. :)
Das von Dir gezeigte Script hat aber mit einer 500.000% Sicherheit niemals nie irgend etwas exportiert. Da steht nur drin: beim zweiten Start am selben tag Aktualisieren (CMD Shift R), sonst nichts. :noplan:
 
ich sach ja, Wochenende: Ich meinte natürlich aktualisieren, weil bei einem freigegebenen Kalender das aktualisieren dazu führt, dass er auch auf der Freigabeadresse im Internet aktualisiert wird, dass meinte ich etwas unpräzise mit "exportieren".
Hm, ok es sollte es eigentlich beim ersten öffnen machen.
Leider konnte ich den Fehler auch noch nicht ganz eingrenzen, wann es genau nicht funktioniert meine ich.
 
Bei mir funktioniert es übrigens, allerdings unter 10.7.4. Es sollte allerdings auch unter SL laufen.
 
wird denn jetzt beim ERSTEN oder ZWEITEN mal aktualisiert? Ich hatte das Skript immer so verstanden, dass es beim ersten mal aktualisiert..
 
Es wird beim ersten mal Öffnen pro Tag aktualisiert. Ich habe das Skript mal kommentiert, dann wird es vllt klarer:

Code:
[FONT="Verdana"][size=2][b]property[/b] [color=#3F7F00]lastOpened[/color] : "" [color=#4C4D4D]-- In dieser Variable wird das Datum gespeichert, an dem das Skript zum letzten mal aufgerufen wurde[/color][color=#7F007F]
[/color]
[b]set[/b] [color=#3F7F00]curDate[/color] [b]to[/b] ([color=#0016B0][b]do shell script[/b][/color] "date \"+%Y-%m-%d\"") [color=#4C4D4D]-- abfragen des aktuellen Datums[/color]
[b]if[/b] [color=#3F7F00]curDate[/color] [b]is[/b] [color=#3F7F00]lastOpened[/color] [b]then[/b] [color=#4C4D4D]-- wenn das aktuelle Datum dem letzten Öffnungsdatum entspricht dann[/color]
	[b]tell[/b] [color=#0000FF][i]application[/i][/color] "iCal" [b]to[/b] [color=#0000FF][b]view calendar[/b][/color] [color=#0000FF]at[/color] ([color=#0016B0][b]current date[/b][/color]) [color=#4C4D4D]-- iCal öffnen[/color]
[b]else[/b] [color=#4C4D4D]-- andernfalls[/color]
	[b]tell[/b] [color=#0000FF][i]application[/i][/color] "iCal"
		[color=#0000FF][b]view calendar[/b][/color] [color=#0000FF]at[/color] ([color=#0016B0][b]current date[/b][/color]) [color=#4C4D4D]-- iCal öffnen [/color]
		[color=#0016B0][b]delay[/b][/color] 1 [color=#4C4D4D]-- 1 Sekunde warten[/color]
		[b]tell[/b] [color=#0000FF][i]application[/i][/color] "System Events"
			[b]tell[/b] [color=#0000FF][i]process[/i][/color] "iCal"
				[color=#0000FF][b]keystroke[/b][/color] "r" [color=#0000FF]using[/color] {[color=#4A1E7F]command down[/color], [color=#4A1E7F]shift down[/color]} [color=#4C4D4D]-- iCal aktualisieren[/color]
			[b]end[/b] [b]tell[/b]
		[b]end[/b] [b]tell[/b]
	[b]end[/b] [b]tell[/b]
[b]end[/b] [b]if[/b]

[b]set[/b] [color=#3F7F00]lastOpened[/color] [b]to[/b] [color=#3F7F00]curDate[/color] [color=#4C4D4D]-- Danach das aktuelle Datum als letztes Öffnungsdatum setzen[/color]
[/size][/FONT]
 
ah, cool, danke, jetzt ist alles klar..., die erste Zeile war mich noch etwas schleierhaft. Ich werde es noch mal in der Funktionalität genau beobachten...
 
Zurück
Oben Unten