NEWS
Gemeinsamer Familienkalender (Google)
-
Hallo Zusammen,
verzweifele langsam daran, meinen Google Familienkalender im VIS einzubinden.
Aus irgendwelchen Gründen habe ich bei meinem GOOGLE Familienkalender keine Möglichkeit Ical auszulesen. Bei meinem Hauptkalender ist das kein Problem und das auslesen im Iobroker funktionert auch. Bei meinem Familienkalender habe ich nur die Möglichkeit durch iframe.
Weiß jemand Rat?
Danke im Voraus.
-
Google gibt dir ja eine URL zum .ics file.
Du musst die nehmen, die unter 'Privatadresse im i-Cal Format' steht. Das ist dann sowas wie
https://calendar.google.com/calendar/ical/tralalatralala%40group.calendar.google.com/private-hoppsassahoppsassah/basic.ics
Wenn du diese URL einfach mal in den Browser eingibst, wird dann ein .ics File heruntergeladen, und steht da drin, was Du erwartest, also Deine Termine?
-
Da stehen aber NICHT die Familientermine drin
-
Man muss natürlich den Kalender auswählen, in den man die gemeinsamen Termine enträgt
-
Nochmal!, die Familieneinträge stehen dort nicht drin.
Egal welchen Kalender man als ics Link einträgt.
Das ist das was uns der TE mitteilen möchte…
Das kann ich hier auch reproduzieren.
-
Genau, der ICS Link ist im Familienkalender nicht zu finden.
Ich dachte mir dann, ich füge dann das iframe alternativ im HTML Widget ein - aber, das funktioniert auch nicht.
Die VIS wird im Browser angezeigt aber nicht in der App.
-
Hat keiner eine Idee oder wie macht ihr das?
-
Jeder Google Kalender hat dies Einstellungen an der gleichen Stelle. Hinter dem Kalender sind 3 Punkte, wenn da drauf gehst, dann geht ein Feld auf und dort einfach "Einstellungen und Freigabe" wählen. Dort scrollst nach unten und schon hast im Feld "Privatadresse im iCal Format"
-
Hallo Jan1,
stimmt, das weiß ich auch.
Aber leider ist es bei dem "neuerem" Google-Feature (ich nenne es mal so), das man einfacher einen Google Familenkalender innerhalb einer Familie erstellen kann - nicht möglich eine ical-Adresse auszulesen bzw. diese wird nicht angezeigt.
-
OK, jetzt versteh ich Dein Problem. Wo ist denn der Kalender dann abgelegt im Google Konto?
-
Ja, ist im meinem Google Konto bzw. ich und meine Frau (also die Eltern) sind die Administratoren dieses Kalenders.
Meine Kinder, die in diesem Familienkonto sind, sehen auch diese Kalendereinträge aus dem Familienkalender.
Ich sehe eigentlich nur noch die Möglichkeit - einen normaler Kalender zu erstellen und die Freigaben wieder an die einzelnen Mitglieder zu verteilen.
Daraus ergibt sich wiederrum das Problem, das ich meine jetztige Kalendereinträge (Familienkalender) nicht exportieren und so in den "neuen" Familienkalender importieren kann.
-
Scheint wohl komplizierter zu sein als gedacht. Ich habe auch immer in meinem Konto ein Kalender und gebe den einfach frei, was für meine Bedürfnisse bis jetzt auch gereicht hat.
Schade, kann Dir da leider nicht weiter helfen.
-
Trotzdem vielen Dank für deine Bemühungen.
Vielleicht liest das jemand der Iobroker nutzt - und überlegt sich es zweimal ob er sich "so" einen Familienkalender erstellt.
-
Der Familienkalender kann auf Grund des fehlenden Links nicht eingebunden werden.
Ich habe eh nicht nur einen Google Account und einfach davon einen Kalender genommen. Der ist als "Familienkalender" unter Kontakten gespeichert und wird dann eingeladen, wenn die Termine auf dem Tablet stehen sollen. Hat auch den Vorteil das nicht alles im Flur zu sehen ist (z.B. bei Besuch). Und wenn nur Steuerungselemente eingetragen werden z.B. "Urlaub_Abwesend" ist das nicht auf dem Handy.
Grüße
Brati
-
Hallo zusammen,
ich habe einen Weg gefunden das ganze zu umgehen mit ein wenig Google Bastelei.
An dieser Stelle möchte ich das ganze teilen, damit nachfolgende Leute das ganze normal weiter nutzen können, die einen Familienkalender nutzen oder nutzen müssen aus diversen Gründen.
Zuerst einmal, JA es ist richtig, dass die neue Funktion Google Familienkalender der automatisch mit "Google Family" kommt keine Export Funktionalität als ics oder ics URL bietet.
Man kann das ganze allerdings etwas umgehen.
Kurz gesagt, 2. Kalender erstellen und den Familienkalender dahin synchronisieren lassen.
Von dem neu erstellten Kalender kann natürlich wieder ganz normal die private ics Adresse kopiert werden.
Nun zur eigentlichen Sync Funktion.
Über Google Drive könnt ihr ein Skript erstellen, dass den Kalender nachts immer synchronisiert.
https://script.google.com/home/my
Erstellt ein neues Projekt und kopiert den nachfolgenden Code in die Anwendung.
Ändert die Zeilen 5 + 6 zu euren Kalender IDs. Die Kalender IDS findet ihr unter dem Punkt "Kalender integrieren" im Google Kalender über den bekannten Export URL.
Über "Ausführen" könnt ihr das ganze testen, über Ausführungsprotokoll schauen was gerade passiert.
Kurz erklärt, der Kalender entfernt alle Einträge aus dem ZIELKALENDER der nächsten 90 Tage (Zeile 17 konfiguriert)
Danach kopiert er alles neu aus dem QUELLKALENDER in den ZIELKALENDER der nächsten 60 Tage (Zeile 18)Anschließend klickt ihr links im Menü auf die "Uhr" bzw auf den Punkt "Trigger" dann auf "Trigger hinzufügen" unten rechts in der Ecke.
Stellt anschließend alles wie folgt ein.
Anschließend habt ihr die Einträge im neuen Kalender, blendet diesen Kalender nur noch für euch aus auf dem Computer und Apps, damit ihr den "backup bzw sync" Kalender nicht nutzt, sondern den "normalen richtigen" Familienkalender.
function Sync_Birth_Cal() { // Calendars adress (ID) var calendarSource = CalendarApp.getCalendarById("family1234567890@group.calendar.google.com"); var calendarDestination = CalendarApp.getCalendarById("ZIELKALENDER_ID@group.calendar.google.com"); // Start and End Date definition var Today = new Date(); var StartDeleteDate = new Date(); var EndDeleteDate = new Date(); var StartCopyDate = new Date(); var EndCopyDate = new Date(); StartDeleteDate.setDate(Today.getDate()); // Lösche alle Einträge von heute an EndDeleteDate.setDate(Today.getDate()+90); // Lösche alle Einträge bis +90 Tage im voraus StartCopyDate.setDate(Today.getDate()); // Kopiere alle Einträge von heute an EndCopyDate.setDate(Today.getDate()+60); // Kopiere alle Einträge für die nächsten 60 Tage // first deletes all datas in calendar var eventToDelete = calendarDestination.getEvents(StartDeleteDate, EndDeleteDate); for (var i = 0; i < eventToDelete.length; i++) { console.log('deleting event ' + i + ' / ' + eventToDelete.length); eventToDelete[i].deleteEvent(); } // then copy everything again var eventToCopy = calendarSource.getEvents(StartCopyDate, EndCopyDate); console.log('Start copying events from ' + StartCopyDate + ' to ' + EndCopyDate); for (var t in eventToCopy){ if(eventToCopy[t].isAllDayEvent() === true) { console.log('Copy event "' + t + ' / ' + eventToCopy.length + ' ' + eventToCopy[t].getTitle() + '" from ' + eventToCopy[t].getAllDayStartDate() + " / " + eventToCopy[t].getAllDayEndDate()); var newEvent = calendarDestination.createEvent(eventToCopy[t].getTitle(), eventToCopy[t].getAllDayStartDate(), eventToCopy[t].getAllDayEndDate()); } else { console.log('Copy event "' + t + ' / ' + eventToCopy.length + ' ' + eventToCopy[t].getTitle() + '" from ' + eventToCopy[t].getStartTime() + " / " + eventToCopy[t].getEndTime()); var newEvent = calendarDestination.createEvent(eventToCopy[t].getTitle(), eventToCopy[t].getStartTime(), eventToCopy[t].getEndTime()); } } }
Nachtrag: Änderung für Termine die ganztägig stattfinden. Gab dabei einen Fehler, aufgrund von Zeitzonen.
Der Familienkalender befindet sich in Zeitzone 2(GMT+00:00) Koordinierte Weltzeit", was nicht geändert werden kann.Gab deshalb eine Abweichung. Mit der Anpassung passiert das nicht mehr.
-
@ghostlabs94 Hey, ich bin ganz neu im IOBroker Thema und fand deine Anleitung für einen FamilienKalender. Habe auch soweit alles befolgt, jedoch kommt ein Fehler beim Script.
19:36:49
Fehler
TypeError: Cannot read properties of null (reading 'getEvents')
Sync_Birth_Cal
@ Code.GS:47Habe die Zeilen mit meinen Kalender-IDs ersetzt.
Kannst du mir da weiterhelfen? Bin in Scriptsachen ein absoluter Laie
Danke und Gruß
-
@ghostlabs94 Mega Tipp, vielen Dank. Funktioniert und löst mein Problem!