Hi,
ich habe es selbst programmiert. Ich wollte die Termine von Heute + nächsten 2 Tage haben. Script ist nicht so aufwendig. Ich führe es einmal Nachts aus und dann immer wenn ich aktuellen Text haben will.
Script sieht so aus:
<?php
ICCR_UpdateCalendar(14290); // Instanz von meinem Kallender
$calendar = ICCR_GetCachedCalendar(14290);
$calendar_array = json_decode($calendar, true);
$heute = mktime(0, 0, 0, date("m") , date("d") + 0, date("Y"));
$heute_flag = true;
$morgen = mktime(0, 0, 0, date("m") , date("d") + 1, date("Y"));
$morgen_flag = true;
$uebermorgen = mktime(0, 0, 0, date("m") , date("d") + 2, date("Y"));
$uebermorgen_flag = true;
$ende = $uebermorgen + 86400;
$text = "";
SetValue(10677, false); // Variable die IPS sagt ob ich Urlaub habe
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
$zeit = $stunde." Uhr ".$minute;
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $heute) && ($entry["To"] <= $morgen)){
if (($entry["allDay"]) && (date('G', time()) < 13)){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
if (strpos($entry["Name"], "Urlaub") >= 0) SetValue(10677, true);
}
else if (($entry["From"] <= $heute) && ($entry["To"] >= $morgen)){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $morgen) && ($entry["To"] <= $uebermorgen)){
if ($entry["allDay"]){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
}
else if (($entry["From"] <= $morgen) && ($entry["To"] >= $uebermorgen)){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $uebermorgen) && ($entry["To"] <= $ende)){
if ($entry["allDay"]){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
}
else if (($entry["From"] <= $uebermorgen) && ($entry["To"] >= $ende)){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
//if (strlen($text) < 2) $text = "Ralf Du hast Heute zum Glück keine Termine";
//print PHP_EOL.PHP_EOL.PHP_EOL.$text;
SetValue(27911, $text); // Stringvariable die den Text enthält
?>
Diesen Text gibt dann auch Alexa ab und zu aus.
Vielleicht eine Idee für dich.
Wenn Du eine hübsche Ansicht fürs Web-Front brauchst kannst Du es einbinden wie in der Doku empfohlen und Du hast die typische Kalender-Ansicht.
Ralf