iCal und Erinnerung an Teilnehmer

R

rainmaker

Aktives Mitglied
Thread Starter
Dabei seit
11.10.2004
Beiträge
275
Reaktionspunkte
0
Hallo,

ich habe folgendes Problem. Bis jetzt konnte mir noch keiner helfen.

Wenn man im iCal ein ereignis hat, kann man ja auch teilnehmer angeben.
diese kann ich einladen. jetzt geht es mir jedoch darum, ob es ein tool gibt oder es ber applescript möglich ist, diesen teilnehmern automatisch 1 oder 2 tage vorher nochmal eine erinnerungsmail zu schicken, in der drin steht, um was es geht, wann wie und wo, also einfach die eintäge aus dem ereignis.

bei ical kann ich ja einstellen, dass so eine erinnerung per mail an mich geschickt wird, aber ich will sowas auch für die teilnehmer.

wäre super, wenn jemand eine idee hätte wie man sowas macht.
sollte es mit applescript gehen wäre ich für tipps noch sehr dankbar.

gruß
 
Zuletzt bearbeitet:
Suboptimal, aber ein Ansatz:
Wenn Die eingeladenen Teilnehmer als Gruppe in Deinem Adressbuch sind kannst Du eine Regel für Mail erstellen die die Erinnerungsmail an Dich an die Gruppe XY weiterleitet.
Vielleicht können andere Mailclients ja auch noch mehr, wer weiss. Andere Mailclients lassen sich in iCal mit Hilfe dieses Programms (http://www.zapptek.com/ical-mail/) benutzen.

Grüße,
Flo
 
Statt der Erinnerung an dich wählst du "Datei öffnen" aus. Hier gibst du ein Skriptprogramm an, das an dich und alle Teilnehmer eine entsprechende Mail versendet.

Das Skript muss als Programm gespeichert sein, damit es beim Öffnen auch gestartet wird. - Ansonsten würde sich das Skript nur im Skripteditor öffnen.
 
Zuletzt bearbeitet:
Hier der Skriptteil, der dafür sorgt, dass du über alle benötigten Informationen verfügst, um sie per eMail zu versenden:

tell application "iCal"
set current_date to the current date
set start_day to (current_date) + (2 * days)
set end_day to (start_day + (1 * days)) - (23 * hours)
tell calendar 3
set theEvent to item 1 of (every event whose start date >= start_day ¬
and start date <= end_day)
set Betreff to summary of theEvent
set Notiz to description of theEvent
set Teilnehmer to email of attendees of theEvent
set Beginn to (start date of theEvent) as string
end tell
end tell


Nun hast du eine Liste der eMail-Adressen, die du in einer Schleife abarbeiten kannst. Für die jeweilige Mail verfügst du über den Titel des Ereignissen (könntest du als Betreff nutzen), das Datum mit Uhrzeit und den gesamten Text.
 
Ich danke dir snow,
ich werde es mal ausprobieren. ist halt ziehmliches neuland für mich.

Danke!
 
Jetzt habe ich noch etwas weiter getüftelt.
Das Skript beinhaltet nun auch den Teil zum Versenden der eMails.

tell application "iCal"
set current_date to the current date
set start_day to (current_date) + (2 * days)
set end_day to (start_day + (1 * days)) - (23 * hours)
tell calendar 3
set theEvent to (every event whose start date >= start_day ¬
and start date <= end_day)
if theEvent is not {} then
set theEvent to item 1 of theEvent
set Betreff to summary of theEvent
set Notiz to description of theEvent
set Teilnehmer to email of attendees of theEvent
set Beginn to (start date of theEvent) as string
else
return
end if
end tell
end tell

set theBody to "Erinnerung: " & Beginn & return & return & Notiz

repeat with oneAd in Teilnehmer
tell application "Mail"
set newMessage to make new outgoing message with properties {subject:Betreff, content:theBody & return & return}
tell newMessage
set sender to "absender@wasweissich.net"
make new to recipient at end of to recipients with properties {address:oneAd}
end tell
send newMessage
end tell
end repeat



Zu beachten:

Im Skript muss die richtige Nummer des Kalenders angegeben sein. Einen Kalender per Name anzusprechen ist mir noch nicht gelungen.

Das Skript ist darauf ausgelegt, dass die Erinnerung 2 Tage vorher stattfindet. Am Anfang des Skripts wird ja das aktuelle Tagesdatum ermittelt - dazu werden zwei Tage hinzu gezählt und in einem Zeitfenster von 1 Stunde wird nach einem Termin gesucht. Wenn du etwas falsch eingestellt hast und daher kein Termin gefunden wurde, bricht das Skript nun ab, ohne irgendwas zu tun.
 
okay dann probiere ich das mal. habe eben eine fehlermeldung bekommen und zwar NSReceiverEvaluationScriptError: 4
 
An welcher Stelle ist der Fehler aufgetreten? Wahrscheinlich ist beim Kopieren ein Zeilenumbruch zu viel entstanden.

set newMessage to new outgoing message ... usw.

gehört alles in eine Zeile bis einschließlich ... return & return}
 
okay ich werde es dann später probieren, ich muss jetzt kurz weg.

aber sehe ich das richtig. ich kopiere jetzt alles und speicher es als programm.
wenn ich dann ein termin in iCal eingebe öffne ich das programm bei erinnerung
und mehr muss ich nicht machen?

und was ist mit set sender to "absender@wasweissich.net"
was muss ich da reinschreiben?

naja vielleicht sollte ich mich einfach ein bißchen einarbeiten... wenn nur zeit wäre :)
 
rainmaker schrieb:
und was ist mit set sender to "absender@wasweissich.net"
was muss ich da reinschreiben?

Natürlich deine Absender-Adresse. Wenn du in Mail mehrere Accounts hast, kommt ohne eine Absender-Angabe eine Meldung, in der dir eine Adresse vorgeschlagen wird. Dann kann das Skript natürlich nicht mehr automatisch ablaufen.
 
gut, das dachte ich mir schon... wäre echt ne gute sachen, wenn das funktioniert... finde es lästig laufend die leute manuell per mail an irgendwelche treffen zu erinnern ;-)
 
Zuletzt bearbeitet:
PS: der fehler kommt immer noch und zwar hier

(every event whose start date ? start_day ¬
and start date ? end_day)


und wie finde ich die programmnummer raus, mit der ich das ganze anspreche, da du ja meintest nur mit dem programmname klappt dies nicht?
 
Zuletzt bearbeitet:
Wie kommst du denn an die Fragezeichen? Das muss größer/gleich und kleiner/gleich sein.

Von Programmnummer habe ich nichts geschrieben. - Nur die Nummer des Kalenders. Diese dürfte der Reihenfolge der Kalender in iCal entsprechen.

"Privat" --> 1
"Büro" --> 2
"Wasweißich" --> 3
usw.
 
okay,
weiß auch nicht wo die fragezeichen herkommen, sind im script nicht da.

jetzt kommt die nächste fehlermedung und zwar an der stelle ¬ and start date ? end_day)
Es wurde „„, ““ erwartet, aber ein „unknown token“ wurde gefunden.

und weil es so schön ist gleich die nächste frage...

Das Skript ist darauf ausgelegt, dass die Erinnerung 2 Tage vorher stattfindet

man kann doch eingeben, wann die erinnerung zu erfolgen hat, sprich 10 minuten vorher oder 2 tage vorher oder ne stunde vorher... wieso ist das slript dann auf 2 tage vorher ausgelegt?
 
Wird wohl besser sein, ich stelle das Skript zum Download bereit. Das Forum hier schein so einiges im Skripttext durcheinander zu würfeln.

Wegen der Synchronisation mit dem Benachrichtigungszeitpunkt werde ich noch ein paar Versuche anstellen.
Im Moment ist es einfach so, dass das Skript ja keine Verbindung zu dem angelegten Ereignis hat. Wenn man bei "Datei öffnen" irgendwelche Parameter übergeben könnte, wäre es möglich, dem Skript mitzuteilen, um welchen Termin es sich handelt. So aber muss das Skript in einem bestimmten Kalender in einem bestimmten Zeitrahmen nach einem Termin suchen.

Vielleicht fällt mir noch eine Möglichkeit ein, das besser zu lösen. Mal sehen.
 
ich danke dir auf jedenfall für die mühe die du dir machst. find eich super nett... noch viel spaß dabei :)
 
Ich habe das bisherige Script jetzt unter dem Namen "Erinnerungsmail" auf meine Download-Seite gepackt.
 
Zuletzt bearbeitet:
Danke, der linke ist zwar tot, aber ich habe es trotzdem gefunden.
 
Ich habe jetzt eine neue Version auf meine Download-Seite gehievt.
In dieser Version habe ich das Zeitfenster, in dem nach Terminen gesucht wird, etwas vergrößert. Die Erinnerungsfunktion scheint damit besser zu laufen. In der Vorversion war dieses Zeitfenster anscheinend etwas zu knapp bemessen, so dass einfach keine entsprechenden Termine gefunden wurden.
 
Hi Snow,

jetzt funktz. Vielen dank.
Noch einen Frage, ist es möglich. noch ein paar Programmzeilen einzufügen, damit in der automatischen Mail auch der Ereignisname und Ort mit übertragen wird?

Aber es ist ql, dass es jetzt geht!

Tausend Dank
 
Zurück
Oben Unten