Google Kalender Termine im WebFront anzeigen

Hi Proxima,
ja eine zahl, siehe

//Hier die Farbe für die ShortCuts angeben
$SC_Farbe[1] = "gray";
$SC_Farbe[2] = "#00AD00";
$SC_Farbe[3] = "darkred";
$SC_Farbe[4] = "lightblue";

ich scheitere auch gerade an genau der gleichen Problematik.
Wie muß denn diese Zeile genau aufgebaut sein ?

MFG Matze

ReadCalendar('NickName%40googlemail.com', '395e75852c617d88417984faf43deb0a', 15, '1');

So! Zuerst die Email-Adresse, dann den Magiccode. Hiernach die Tage Wieviele man abholen möchte.
In meinem Fall 15. Und zu guter Letzt die Ziffer für den Shortcut welcher die Farbe auswählt. In diesem
Fall wäre es dann die Farbe Grau.

Wobei ich gerade gesehen haben, dass du die Anführungsstriche beim Shortcut weglassen kannst.

Grüße

hallo, ein Problem ist noch vorhanden, und zwar erhalte ich folgende Fehlermeldung, mit
der ich nicht wirklich was mit anfangen kann.
:slight_smile:

Hi Matze,

bekomme die selbe Fehlermeldung, wenn ich keinen Kalender definiere.
Dein Fehler liegt also in der „ReadCalender“ Zeile.

Poste die mal und vergiss nicht, deinen MagicCookie zu zensieren :slight_smile:

Grüße

so sieht die Zeile bei mir aus

ReadCalendar(‚xxxx.yyyyxxxxxxxyy%40googlemail.com‘, ‚1234bla247654789988bla66‘, 15, ‚1‘);

Hi Matze,
was bekommst du angezeigt, wenn du auf der Google-Seite die XML Adresse deines Kalenders
in den Browser einträgst? Da solltest du deine Kalendereinträge angezeigt bekommen.

Grüße

ps. was Anderes noch, hast du ein GMail Konto oder ein GoogleMail Konto … das musst du dann
in der Zeile mit anpassen.

Wenn ich die XML Adresse in den Browser eingebe lande ich auf meinem Kalender, also so eine Text Ansicht. ich denke das ist so richtig. Und die e-mail Endung ist bei mir googlemail.com. Also es muß irgendwas anderes nicht IO sein …aber was?
Ist doch Richtig das ich die XML Adresse nehme die in den Googel Settings Privatadresse genannt wird oder ?

Ja, das ist so richtig. Und als MagicCode, das was zwischen „private-“ und „/basic“ steht nehmen.

Irgendwie verzwickt!

Trage mal folgende Zeile in dein Script ein.

ReadCalendar(‚ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com‘, ‚‘, 10, ‚4‘);

Wenn dann nichts kommt poste mal bitte dein Script.

Grüße

folgendes erhalte ich


<?php

// Hier die GoogleKalender eintragen


ReadCalendar('xxxx.xxxxxxxxxxxxxxxxx%40googlemail. com', '00000000000000000000000000000', 15, 1);



//Hier die Farbe für die ShortCuts angeben
$SC_Farbe[1] = "gray";
$SC_Farbe[2] = "#00AD00";
$SC_Farbe[3] = "darkred";
$SC_Farbe[4] = "lightblue";

//Hier den Style wählen
$blinkToday = true; // (true/false) blinken des heutigen Kalendereintrages An/Aus

/******** Farbnamen, RGB-Formatierung, Hex-Zahlen möglich *********/
$StyleText[1] = "white"; // Textfarbe Datum
$StyleText[2] = "gray"; // Textfarbe Wochentag

/*** xx-small, x-small, small, normal, large, x-large, xx-large ***/
/************** oder Angabe in pt - z.B. "12pt" *******************/
$StyleText[3] = "large"; // Textgröße Datum
$StyleText[4] = "normal"; // Textgröße Wochentag
$StyleText[5] = "normal"; // Textgröße Eintrag



/****************** Ab hier wieder die Finger lassen **************/
// Wochentage auf Deutsch
$tag[0] = "Sonntag";
$tag[1] = "Montag";
$tag[2] = "Dienstag";
$tag[3] = "Mittwoch";
$tag[4] = "Donnerstag";
$tag[5] = "Freitag";
$tag[6] = "Samstag";
$deco = "";
if($blinkToday)$deco = "blink";

function DateCompare($a, $b) {
if ( $a['Datum'] == $b['Datum'] ) return 0;
if ( $a['Datum'] < $b['Datum'] ) return -1;
return 1;
}

function ReadCalendar($userid, $magicCookie, $maxDays, $shortCut) {
global $calcData;

if ($magicCookie != '')
{
$feedURL = "http://www.google.com/calendar/feeds/$userid/private-$magicCookie/full";
//echo $feedURL; echo "/BR";
}
else
$feedURL = "http://www.google.com/calendar/feeds/$userid/public/full";

$feedParams = "?singleevents=true&max-results=20&orderby=starttime&start-min=".urlencode(date("c",strtotime("today")))."&st art-max=".urlencode(date("c", strtotime("+".$maxDays." day")))."&sortorder=a";
$sxml = simplexml_load_file($feedURL.$feedParams);

$date = "";
foreach ($sxml->entry as $entry) {
$title = stripslashes(utf8_decode($entry->title));
$gd = $entry->children('http://schemas.google.com/g/2005');

$startTime = '';
$endTime = '';
if ( $gd->when ) {
$startTime = $gd->when->attributes()->startTime;
$endTime = $gd->when->attributes()->endTime;
} elseif ( $gd->recurrence ) {
$startTime = $gd->recurrence->when->attributes()->startTime;
$endTime = $gd->recurrence->when->attributes()->endTime;
}
$startTime = strtotime( $startTime );
$endTime = strtotime( $endTime );
$thisData['Datum'] = $startTime;

$where = utf8_decode($gd->where->attributes()->valueString);
if(strlen($where) > 0)
$where = " (".$where.")";

$thisData['DatumTxt'] = date("d.m.Y", $startTime);
$thisData['EndDatumTxt'] = date("d.m.Y", $endTime);
$thisData['ZeitTxt'] = date("H:i", $startTime);
$thisData['EndZeitTxt'] = date("H:i", $endTime);
$thisData['shortCut'] = $shortCut;
$thisData['Bezeichnung'] = $title.$where;
if($thisData['ZeitTxt'] == "00:00" && $thisData['EndZeitTxt'] == "00:00")
$thisData['EndDatumTxt'] = date("d.m.Y", strtotime($thisData['EndDatumTxt']."-1 day"));


$calcData[] = $thisData;
}
}

usort($calcData, 'DateCompare');
$calDataTxt = "<table style='border-spacing:0px; width:100%'>"; // Starte Tabellenansicht
$check_date = "";
foreach($calcData as $thisData)
{
if($thisData['EndDatumTxt'] != date("d.m.Y", strtotime("yesterday")))
{
if($check_date != "" and $thisData['DatumTxt'] != $check_date)$calDataTxt .= "</table></th></tr>";
if($thisData['DatumTxt'] != $check_date)
{
if($thisData['DatumTxt'] == date("d.m.Y"))$headerTxt = "Heute:";
elseif($thisData['DatumTxt'] == date("d.m.Y", strtotime("+1 day")))$headerTxt = "Morgen:";
else $headerTxt = $thisData['DatumTxt'];


$calDataTxt .= "<tr><td style=' padding:4px;
backgroun-color:#213245;
background: -moz-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(4%,rgba(31,50,79,0)), color-stop(100%,#213245));
background: -webkit-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
background: -o-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
background: -ms-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
background: linear-gradient(to right, rgba(31,50,79,0) 40%), #213245 100%;'>
<span style='color:".$StyleText[1].";font-weight:200;font-size:".$StyleText[3]."'>"
.$headerTxt.
"</span></td>
<td style='text-align:right; width:100px; padding:4px;background-color:#213245'>"
."<span style='color:".$StyleText[2].";font-weight:normal;font-size:".$StyleText[4]."'>"
.$tag[date("w", strtotime($thisData['DatumTxt']))].
"<span>".
"</td>
</tr>
<tr>
<th colspan='2' style='text-align:left;padding-left:20px;padding-right:0px;padding-bottom:10px;padding-top:0px;'>
<table style='border-spacing:0px; width:100%;padding:5px; border:1px solid #1f3247;'>";
$check_date = $thisData['DatumTxt'];
$calDataTxt .= SetEintrag($thisData);
}
else
{
$calDataTxt .= SetEintrag($thisData);
}
}
}
$calDataTxt .= "</table></th></tr></table>"; // Tabelle schließen

SetValue(CreateVariableByName($IPS_SELF, "Kalender", 3, "~HTMLBox"), $calDataTxt);

/*********** Werte in eine Datei schreiben. Ich habe keine Verwendung dafür *******/

$calDataTxt = '';
foreach($calcData as $thisData)
$calDataTxt .= $thisData['DatumTxt'].'>'.$thisData['shortCut'].$thisData['Bezeichnung']."
";
/*
$handle = fopen("C:/IP-Symcon/Termine.txt", "w");
fwrite($handle, $calDataTxt);
fclose($handle);
*/

if($IPS_SENDER == "Execute")
{

echo $calDataTxt;
}

function CreateVariableByName($id, $name, $type, $profile = "")
{
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
function SetEintrag($thisData)
{
global $tag, $SC_Farbe, $deco, $StyleText;
if($thisData['ZeitTxt'] == "00:00")
{
if($thisData['DatumTxt'] == $thisData['EndDatumTxt'])$thisData['ZeitTxt']="Ganztägig";
else $thisData['ZeitTxt']="bis ".substr($tag[date("w", strtotime($thisData['EndDatumTxt']))],0,2).", ".$thisData['EndDatumTxt'];
}
else $thisData['ZeitTxt'] .= " - ".$thisData['EndZeitTxt']." Uhr";
if($thisData['DatumTxt'] == date("d.m.Y"))
{
return "<tr><td><span style='font-weight:normal;font-size:".$StyleText[5].";text-decoration:".$deco.";;color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['Bezeichnung']."</span></td>
<td style='text-align:right;'>
<span style='font-weight:normal;font-size:".$StyleText[5].";text-decoration:".$deco.";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['ZeitTxt']."</span></td></tr>";
}
else
{
return "<tr><td><span style='font-weight:normal;font-size:".$StyleText[5].";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['Bezeichnung']."</span></td>
<td style='text-align:right'><span style='font-weight:normal;font-size:".$StyleText[5].";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['ZeitTxt']."</span></td></tr>";
}

}

?> 

Ich gehe davon aus, dass er nicht auf Deinen Google Kalender zugreifen kann. Das kann an dem Kalender-Link liegen, dass der Kalender nicht freigegeben ist usw. Die erste Fehlermeldung ist da eindeutig.

Bitte setze PHP-Skripte in Zukunft in die zugehörigen Quotes. Das steigert die Lesbarkeit erheblich.

Also ich sehe da ein Leerzeichen in der E-Mail-Adresse!

@ crypto
mir ist da ein Fehler unterlaufen. Wenn ich den von die geposteten code verwende
funktioniert es :slight_smile:

ReadCalendar(‚ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com‘, ‚‘, 10, 4);

Aber wie muß er aussehen damit mein Kalender angezeigt wird ?

Servus,

Hätte da mal einen Erweiterungsvorschlag :slight_smile:

wenn man den Code in Zeile 185:

else $thisData['ZeitTxt'] .= " - ".$thisData['EndZeitTxt']." Uhr";

so erweitert:

else if($thisData['ZeitTxt'] == $thisData['EndZeitTxt'])$thisData['ZeitTxt']=$thisData['ZeitTxt']." Uhr";
    else $thisData['ZeitTxt'] .= " - ".$thisData['EndZeitTxt']." Uhr";

wird bei Terminen, bei denen es nur eine Startzeit gibt auch nur die Startzeit angezeigt.
z.B.: 10:00 - 10:00 Uhr wird dann einfach 10:00 Uhr. :loveips:

Gruß
Manfred

Danke :slight_smile: Tolle Sache!

Erstmal großen Dank an den Schreiber des Kalender Scripts

Ich nutze den Kalender hauptsächlich dafür um an die Mülltermine zu erinntert zu werden.
habe das auch gleich mal implementiert und dabei noch eine kleine Verbesserung eingebaut.

Diese sorgt dafür, dass wenn am heutigen Tag ein Termin ansteht wird eine Variable auf true gesetzt, ebenso für den morgigen Tag. Diese kann dann wieder in anderen Scripten verwendet werden um zB. ein Erinnerungslicht einzuschalten.

Die Erweiterung ist folgende:

Zuerst werden die Variablen auf false gesetzt


$warningtoday = false;
$warningtomorrow = false;

//Hier die Farbe für die ShortCuts angeben
$SC_Farbe[1] = "gray";
$SC_Farbe[2] = "#00AD00";

Zeile 100: Die Abfrage ob Heute oder Morgen ändert je nachdem die Variable:

        if($thisData['DatumTxt'] != $check_date)
        {
            if($thisData['DatumTxt'] == date("d.m.Y")){
					$headerTxt = "Heute:";
					$warningtoday = true;}
            elseif($thisData['DatumTxt'] == date("d.m.Y", strtotime("+1 day"))){
					$headerTxt = "Morgen:";
               $warningtomorrow = true;}
					else $headerTxt = $thisData['DatumTxt'];

Zu guter letzt wird die Variable in die IPS Variable übertragen

SetValue(CreateVariableByName($IPS_SELF, "Kalender", 3, "~HTMLBox"), $calDataTxt);

SetValue(CreateVariablebyname($IPS_SELF, "warning_today", 0), $warningtoday);
SetValue(Createvariablebyname($IPS_SELF, "warning_tomorry", 0), $warningtomorrow);

Der gesamte Code sieht dann so aus:

<?php
// Hier die GoogleKalender eintragen
// ReadCalendar(Userid, MagicCookie, Tage die abgerufen werden, ShortCut für farbige Sortierung)


$warningtoday = false;
$warningtomorrow = false;

//Hier die Farbe für die ShortCuts angeben
$SC_Farbe[1] = "gray";
$SC_Farbe[2] = "#00AD00";
$SC_Farbe[3] = "darkred";
$SC_Farbe[4] = "lightblue";

//Hier den Style wählen
$blinkToday = false; // (true/false) blinken des heutigen Kalendereintrages An/Aus

/******** Farbnamen, RGB-Formatierung, Hex-Zahlen möglich *********/
$StyleText[1] = "white"; // Textfarbe Datum
$StyleText[2] = "gray"; // Textfarbe Wochentag

/*** xx-small, x-small, small, normal, large, x-large, xx-large ***/
/************** oder Angabe in pt - z.B. "12pt" *******************/
$StyleText[3] = "large"; // Textgröße Datum
$StyleText[4] = "normal"; // Textgröße Wochentag
$StyleText[5] = "normal"; // Textgröße Eintrag



/****************** Ab hier wieder die Finger lassen **************/
// Wochentage auf Deutsch
$tag[0] = "Sonntag";
$tag[1] = "Montag";
$tag[2] = "Dienstag";
$tag[3] = "Mittwoch";
$tag[4] = "Donnerstag";
$tag[5] = "Freitag";
$tag[6] = "Samstag";
$deco = "";
if($blinkToday)$deco = "blink";

function DateCompare($a, $b) {
    if ( $a['Datum'] == $b['Datum'] ) return 0;
    if ( $a['Datum'] < $b['Datum'] )  return -1;
    return 1;
}

function ReadCalendar($userid, $magicCookie, $maxDays, $shortCut) {
    global $calcData;

    if ($magicCookie != '')
        {
           $feedURL = "http://www.google.com/calendar/feeds/$userid/private-$magicCookie/full";
            //echo $feedURL; echo "/BR";
            }
else
        $feedURL = "http://www.google.com/calendar/feeds/$userid/public/full";

     $feedParams = "?singleevents=true&max-results=20&orderby=starttime&start-min=".urlencode(date("c",strtotime("today")))."&start-max=".urlencode(date("c", strtotime("+".$maxDays." day")))."&sortorder=a";
    $sxml = simplexml_load_file($feedURL.$feedParams);

    $date = "";
    foreach ($sxml->entry as $entry) {
        $title = stripslashes(utf8_decode($entry->title));
        $gd = $entry->children('http://schemas.google.com/g/2005');

        $startTime = '';
            $endTime = '';
          if ( $gd->when ) {
            $startTime = $gd->when->attributes()->startTime;
            $endTime = $gd->when->attributes()->endTime;
          } elseif ( $gd->recurrence ) {
            $startTime = $gd->recurrence->when->attributes()->startTime;
            $endTime = $gd->recurrence->when->attributes()->endTime;
          }
          $startTime = strtotime( $startTime );
          $endTime = strtotime( $endTime );
            $thisData['Datum'] = $startTime;

        $where = utf8_decode($gd->where->attributes()->valueString);
        if(strlen($where) > 0)
            $where = " (".$where.")";

         $thisData['DatumTxt'] = date("d.m.Y", $startTime);
         $thisData['EndDatumTxt'] = date("d.m.Y", $endTime);
            $thisData['ZeitTxt'] = date("H:i", $startTime);
            $thisData['EndZeitTxt'] = date("H:i", $endTime);
            $thisData['shortCut'] = $shortCut;
         $thisData['Bezeichnung'] = $title.$where;
            if($thisData['ZeitTxt'] == "00:00" && $thisData['EndZeitTxt'] == "00:00")
           $thisData['EndDatumTxt'] = date("d.m.Y", strtotime($thisData['EndDatumTxt']."-1 day"));


            $calcData[] = $thisData;
            }
}

usort($calcData, 'DateCompare');
$calDataTxt = "<table style='border-spacing:0px; width:100%'>"; // Starte Tabellenansicht
$check_date = "";
foreach($calcData as $thisData)
{
    if($thisData['EndDatumTxt'] != date("d.m.Y", strtotime("yesterday")))
    {
        if($check_date != "" and $thisData['DatumTxt'] != $check_date)$calDataTxt .= "</table></th></tr>";
        if($thisData['DatumTxt'] != $check_date)
        {
            if($thisData['DatumTxt'] == date("d.m.Y")){
					$headerTxt = "Heute:";
					$warningtoday = true;}
            elseif($thisData['DatumTxt'] == date("d.m.Y", strtotime("+1 day"))){
					$headerTxt = "Morgen:";
               $warningtomorrow = true;}
					else $headerTxt = $thisData['DatumTxt'];


            $calDataTxt .= "<tr><td style='  padding:4px;
                                                        backgroun-color:#213245;
                                                        background: -moz-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
                                                        background: -webkit-gradient(linear, left top, right top, color-stop(4%,rgba(31,50,79,0)), color-stop(100%,#213245));
                                                        background: -webkit-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
                                                        background: -o-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
                                                        background: -ms-linear-gradient(left, rgba(31,50,79,0) 40%, #213245 100%);
                                                        background: linear-gradient(to right, rgba(31,50,79,0) 40%), #213245 100%;'>
                                                        <span style='color:".$StyleText[1].";font-weight:200;font-size:".$StyleText[3]."'>"
                                                        .$headerTxt.
                                                        "</span></td>
                                           <td style='text-align:right; width:100px; padding:4px;background-color:#213245'>"
                                                        ."<span style='color:".$StyleText[2].";font-weight:normal;font-size:".$StyleText[4]."'>"
                                                        .$tag[date("w", strtotime($thisData['DatumTxt']))].
                                                        "<span>".
                                                        "</td>
                                                        </tr>
                                                        <tr>
                                                        <th colspan='2' style='text-align:left;padding-left:20px;padding-right:0px;padding-bottom:10px;padding-top:0px;'>
                                                        <table style='border-spacing:0px; width:100%;padding:5px; border:1px solid #1f3247;'>";
            $check_date = $thisData['DatumTxt'];
            $calDataTxt .= SetEintrag($thisData);
        }
        else
        {
            $calDataTxt .= SetEintrag($thisData);
         }
    }
}
$calDataTxt .= "</table></th></tr></table>"; // Tabelle schließen

SetValue(CreateVariableByName($IPS_SELF, "Kalender", 3, "~HTMLBox"), $calDataTxt);

SetValue(CreateVariablebyname($IPS_SELF, "warning_today", 0), $warningtoday);
SetValue(Createvariablebyname($IPS_SELF, "warning_tomorry", 0), $warningtomorrow);

/*********** Werte in eine Datei schreiben. Ich habe keine Verwendung dafür *******/

$calDataTxt = '';
foreach($calcData as $thisData)
    $calDataTxt .= $thisData['DatumTxt'].'>'.$thisData['shortCut'].$thisData['Bezeichnung']."
";
/*
$handle = fopen("C:/IP-Symcon/Termine.txt", "w");
fwrite($handle, $calDataTxt);
fclose($handle);
*/

if($IPS_SENDER == "Execute")
{

    echo $calDataTxt;
}

function CreateVariableByName($id, $name, $type, $profile = "")
{
    global $IPS_SELF;
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
        if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
    }
    return $vid;
}
function SetEintrag($thisData)
{
    global $tag, $SC_Farbe, $deco, $StyleText;
    if($thisData['ZeitTxt'] == "00:00")
        {
        if($thisData['DatumTxt'] == $thisData['EndDatumTxt'])$thisData['ZeitTxt']="Ganztägig";
        else $thisData['ZeitTxt']="bis ".substr($tag[date("w", strtotime($thisData['EndDatumTxt']))],0,2).", ".$thisData['EndDatumTxt'];
        }
    else $thisData['ZeitTxt'] .= " - ".$thisData['EndZeitTxt']." Uhr";
    if($thisData['DatumTxt'] == date("d.m.Y"))
    {
        return "<tr><td><span style='font-weight:normal;font-size:".$StyleText[5].";text-decoration:".$deco.";;color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['Bezeichnung']."</span></td>
                        <td style='text-align:right;'>
                        <span style='font-weight:normal;font-size:".$StyleText[5].";text-decoration:".$deco.";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['ZeitTxt']."</span></td></tr>";
    }
    else
    {
        return "<tr><td><span style='font-weight:normal;font-size:".$StyleText[5].";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['Bezeichnung']."</span></td>
                        <td style='text-align:right'><span style='font-weight:normal;font-size:".$StyleText[5].";color:".$SC_Farbe[$thisData['shortCut']]."'>".$thisData['ZeitTxt']."</span></td></tr>";
    }

}

?>

Hallo
Danke für das tolle Script. Hab alles soweit zum laufen gebracht, nur die heutigen Termine blinken nicht, obwohl
die zutreffende Variable auf true gesetzt ist.


$blinkToday = true;

Was mach ich da noch falsch?

Wer kann mir Helfen:
folgender Fehler:
Parse error: syntax error, unexpected’ReadCalendar’(T_STRING)in C:\IP-Symcon\scripts\28179.ipsphp on line 3

:frowning:

und nun???

Soweit läuft es jetzt, aber die Feiertage und Geburtstage zeigt es nicht, trotz pulic. Weiter weiss ich nicht wie man die Aktualisierung einstellt, also wie oft sich der Kalender im Hintergrund abgleicht automatisch, schön wäre wirklich eine Hilfe

Gesendet von meinem SM-N9005 mit Tapatalk