iCal: Termin per E-Mail eintragen

S

stm

Neues Mitglied
Thread Starter
Dabei seit
15.03.2007
Beiträge
5
Reaktionspunkte
0
Hallo zusammen. Ich bin gestern an meinem ersten AppleScript verzweifelt und suche nun hier nach Hilfe. BTW: Als passiver User war ich schon häufiger hier und habe auch Hilfe gefunden :)

Zur Situation. Ich habe einen Kalender "test" angelegt. Über eine Terminverwaltung im Web wird, wenn ein neuer Termin eingetragen wird, eine Mail an verschiedene Benutzer verschickt (Info über neuen Termin).

Jetzt würde ich gerne die Termine automatisch in iCal eintragen.

Die Mails haben den Betreff der Form: neuer Termin eingetragen: 28.11.2007|Titel|Ort

Titel, Ort usw. funktiniert auch prima, nur mit dem Datum hapert es noch, weil der Termin immer am aktuellen Tag eingetragen wird.

Die Funktionen "split" und "trim_line" habe ich, der Übersichtlichkeit halber, mal weggelassen...

Was mache ich Newbee falsch?

Code:
tell application "iCal" to get properties of calendar 9

tell application "Mail"
	-- What must the subject start with? This gets trimmed.
	set thePrefix to "neuer Termin eingetragen: "
	-- What calendar will we add the todo to?
	set theCalendar to "test"
	
	set theMessages to (messages of inbox whose read status is false)
	
	repeat with mail in theMessages
		if the subject of the mail begins with thePrefix then
			set theDescription to the content of the mail
			set theSubject to my trim_line(the subject of the mail, thePrefix, 0)
			
			-- Subject in die 3 teile splitten: Datum|Beschreibung|Ort
			set CalHelp to my split(theSubject, "|")
			set meinEreignisTitel to item 2 of CalHelp
			set meinEreignisLocation to item 3 of CalHelp
			set theDate to item 1 of CalHelp

			tell application "iCal"
				tell calendar theCalendar
					make new event at end with properties {description:theDescription, summary:meinEreignisTitel, location:meinEreignisLocation, start date:theDate, allday event:true}
				end tell
			end tell
			
			-- can't delete unread messages?
			set read status of the mail to true
			delete the mail
		end if
	end repeat
end tell

Danke schon vorab,
/stm.
 
Ciao,

Titel, Ort usw. funktiniert auch prima, nur mit dem Datum hapert es noch, weil der Termin immer am aktuellen Tag eingetragen wird.
Wenn Titel und Ort korrekt ausgelesen werden, nehme ich mal an, daß der Handler "split" funktioniert.

Ich könnte mir vostellen, daß diese Zeile iCal Probleme bereitet:
PHP:
set theDate to item 1 of CalHelp
Höchstwahrscheinlich muß das Datum in die Klasse "date" umgewandelt werden (der Split-Handler reicht es als normalen Textstring an Dein Skript weiter). Versuch's mal mit
PHP:
set theDate to date (item 1 of CalHelp)
oder
PHP:
set theDate to item 1 of CalHelp
set theDate to date theDate

Frohes skripten
Farid
 
Versuch's mal mit
PHP:
set theDate to date (item 1 of CalHelp)
oder
PHP:
set theDate to item 1 of CalHelp
set theDate to date theDate

Danke für den Hinweis. Leider bringt das - was sinnvoll klingt - die Fehlermeldung: "Mail hat einen Fehler erhalten: date "28.11.2007" kann nicht in Typ reference umgewandelt werden.

Ich bin ratlos und verstehe diese komische Fehlermeldung leider nicht.

Sachdienliche Hinweise...?
 
- gelöscht -
 
Zuletzt bearbeitet:
- gelöscht -
 
Zuletzt bearbeitet:
Kann mir noch jemand erklären, warum meine Antwort nun drei Mal erscheint?
 
Sachdienliche Hinweise...?

Vielleicht hilft Dir das weiter? :
PHP:
set otid to text item delimiters

set s to "28.11.2007|Titel|Ort"
set text item delimiters to "|"
-- ich nehme, auch Dein Handler "Split()" zerpflückt den Startstring mittels text item delimiters...
set s1 to text item 1 of s
set theDate to date s1

set text item delimiters to otid

-- Probe:
theDate
--> date "Mercoledì, 28 novembre 2007 0:00:00"
Frohes skripten
Farid
 
Zurück
Oben Unten