iMac / Kalender (iCal) / Terminansage via IPS

Hallo,

auch ich wollte mal ein etwas kreativen Input liefern, nachdem auch mir im Forum immer so gut geholfen wurde.

Folgendes Szenario:
Wir haben einen iMac als Arbeitsplatz-PC im Haus (der aber nur bei Bedarf eingeschaltet ist). Auf diesem Mac verwendet wir die iCal Kalenderanwendung als „Zentrale“ für alle unsere Termine. Die bietet sich auch wegen iPhone Sync. an.

Jetzt wollte ich mir gerne jeden Morgen alle Termine des aktuellen Tages per Sprachausgabe ausgeben lassen. Ein Script was mich Morgends im Bad per Sprache begrüßt gibt es schon, musste aber eben noch um die Terminfunktion erweitert werden.

Die Logik dazu besteht aus zwei Teilen.

Voraussetzung:
Eine Windows Freigabe auf dem IPS Server und einen Benutzer mit Schreibrechten auf dieser Freigabe. Hier wird die CSV Datei mit den zukünftigen Terminen abgespeichert.

1.) AppleScript zum Exportieren aller zukünftigen Termine in eine CSV Datei:


set dateiname to "Volumes:transfer:ical_Kalender.csv" as string
 
-- IP Symcon Transfer Freigabe öffnen und eventuell alte Datei löschen
tell application "Finder"
	mount volume "smb://192.168.3.9/transfer" as user name "transfer" with password "xxx"
	try
		do shell script "rm /Volumes/transfer/ical_Kalender.csv"
	end try
end tell
 
tell application "iCal"
 
	set datei to open for access dateiname with write permission
	set AlleKalender to name of every calendar
 
	repeat with EinKalender in AlleKalender
		tell calendar EinKalender
			set AlleTermine to (every event whose start date ≥ (get current date))
			repeat with EinTermin in AlleTermine
				set Zusammenfassung to summary of EinTermin
				set Beginn to start date of EinTermin
				set {month:m, year:y, day:d, time:t} to Beginn
				set m to m as integer
 
				set Datum to d & "." & m & "." & y as string
				set Zeit to time string of Beginn
 
				-- Jetzt die Informationen in eine CSV Datei eintragen
				-- Aufbau:
				-- <Datum>;<Zeit>;<Zusammenfassung>
				write (Datum & ";" & Zeit & ";" & Zusammenfassung & "
") to datei as «class utf8»
 
			end repeat
		end tell
	end repeat
 
	close access datei
 
end tell

Da ich noch Anfänger im Punkte „AppleScript“ bin möge man mir eventuelle Unschönheiten nachsehen :rolleyes:.

Alle roten Textstellen müssen noch angepasst werden (Freigabename, Benutzer und Passwort).
Ein Fehlerhandling soll noch dazu kommen → später :D.

Wenn man das ausführt, dann liegt die Datei „ical_Kalender.csv“ auf dem IPS Server in der entsprechenden Freigabe.

Mit dem folgenden PHP Code kann man diese dann in eigenen Scripten auswerten und nach belieben verwenden.

2.) PHP Scriptbeispiel:

// Jetzt prüfen wir eventuelle Termine heute
	$termine = IPS_GetKernelDir()."//transfer//ical_Kalender.csv";
	$termin_gefunden = 0;
	$termin_text = "";
	$datum_aktuell = date("j.n.Y");
 
	if (($handle = fopen($termine, "r")) !== FALSE)
	{
		while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
			$datum = $data[0];
			$zeit = $data[1];
			$zusammenfassung = utf8_decode($data[2]);
 
			if($datum == $datum_aktuell)
			{
			   // Termin für heute gefunden
			   // In ein Array eintragen
				$termin_gefunden = 1;
				if($zeit == "00:00:00")
				{
					$termin_text = $termin_text . " " . $zusammenfassung . " - ohne genaue Uhrzeit. ";
				} else {
					$termin_text = $termin_text . " " . $zusammenfassung . " - um " . $zeit . " Uhr. ";
				}
			}
		}
	}

Das AppleScript muss natürlich jetzt regelmäßig ausgeführt werden, da sonst IPS die neuen Termine nicht mitbekommt.

Vielleicht hilft dem einen oder anderen mein Script etwas weiter oder inspiriert zu eigenen neuen Ideen.

Rückmeldungen (jeder Art) wären natürlich schön.

Viele Grüße
Thorsten

ich hätte auch gerne meine ical Termine in IPS. Nur würde ich mir den Weg über ein parsen der .ics Datei wünschen.

Aus dem Mac einfach den Kalender freigeben (nett Apple hat mit einer neuen OS Version dieses unterbunden wenn man mobile me nutzt). So liegt dieser auf irgendeinem Webspace auf dem IPS zugreifen kann.

Ich habe mal dne php Kalender eingebunden, hat mir aber nicht so richtig gefallen. Falls das noch jemand eine Lösung hat…

Hatte kaum Resonanz (weniger als 10 Downloads) und habs darum dann nicht mehr weiter verfolgt.

Toni

An die ICS Möglichkeit habe ich gar nicht gedacht. :o

Der Vorteil für mich ist, dass alles mit Mac eigenen Werkzeugen funktioniert und ich keine „Zwischnschicht“ mehr brauche.
Wobei man am Komfort sicherlich noch schrauben könnte :smiley:

Gruß
Thorsten