Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. iCal Monatsansicht VIS

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

iCal Monatsansicht VIS

Geplant Angeheftet Gesperrt Verschoben JavaScript
41 Beiträge 12 Kommentatoren 8.1k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D der-eine

    @senger1985 hierfür gibt es kein Skript. Ein Skript das mir meine Termin auf die 30 Tage einteilt hätte ich selber gesucht.

    S Offline
    S Offline
    senger1985
    schrieb am zuletzt editiert von
    #32

    @der-eine okay, trotzdem danke.

    D 1 Antwort Letzte Antwort
    0
    • S senger1985

      @der-eine okay, trotzdem danke.

      D Offline
      D Offline
      der-eine
      schrieb am zuletzt editiert von
      #33

      @senger1985 Bitte. Hast Du Dir mal die Anzeige der Termin im MDUI CSS angeschaut? Mir gefällt die ganz gut vor allem mit der Möglichkeit nach Terminen zu suchen oder nur bestimmte Kalender einzublenden.

      5FDE9054-50E9-4A91-92A5-4BC44C2905D0.png

      S 1 Antwort Letzte Antwort
      0
      • D der-eine

        @senger1985 Bitte. Hast Du Dir mal die Anzeige der Termin im MDUI CSS angeschaut? Mir gefällt die ganz gut vor allem mit der Möglichkeit nach Terminen zu suchen oder nur bestimmte Kalender einzublenden.

        5FDE9054-50E9-4A91-92A5-4BC44C2905D0.png

        S Offline
        S Offline
        senger1985
        schrieb am zuletzt editiert von
        #34

        @der-eine nein, habe ich mir noch nicht angeschaut, da mir gerade eine Idee in den Kopf geschossen kam und ich jetzt gucken möchte, ob ich sie so umsetzen kann

        1 Antwort Letzte Antwort
        0
        • D der-eine

          @senger1985 hierfür gibt es kein Skript. Ein Skript das mir meine Termin auf die 30 Tage einteilt hätte ich selber gesucht.

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #35

          @der-eine nicht so schön wie das m,it dem material design

          aber eine liste mit ical gäbe es auch hier:

          https://forum.iobroker.net/topic/40691/html-tabelle-für-ical-adapter-mehrere-instanzen

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          D 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @der-eine nicht so schön wie das m,it dem material design

            aber eine liste mit ical gäbe es auch hier:

            https://forum.iobroker.net/topic/40691/html-tabelle-für-ical-adapter-mehrere-instanzen

            D Offline
            D Offline
            der-eine
            schrieb am zuletzt editiert von
            #36

            @liv-in-sky danke Dir. Bin mit dem MDUI CSS zufrieden. Früher wäre es interessant gewesen die Termin so aufzuteilen wie im ersten Post beschrieben.

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              senger1985
              schrieb am zuletzt editiert von
              #37

              Ich wollte mal mein Fortschritt mitteilen, einen "einfachen" Kalender, in der Vis anzuzeigen.

              Es muss ein JS erstellt werden und ein eigener Datenpunkt, den man dann in der Vis, mittels "basic-HTML"-Widget ausgeben kann.

              schedule('0,6,21 * * *', async function () {
              var d = new Date();
              var dm = d.getMonth() + 1;
              var dj = d.getYear();
              if(dj < 999) dj+=1900;
              Kalender(dm,dj);
              
              function Kalender(Monat,Jahr) {
              Monatsname = new Array
              ("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli",
              "August","September","Oktober","November","Dezember");
              Tag = new Array ("Mo","Di","Mi","Do","Fr","Sa","So");
              
              var KSchrArt = "Verdana,Arial"; /* Schriftart Kalenderkopf */
              var KSchrGroesse = 3;           /* Schriftgroesse 1-7 Kalenderkopf */
              var KSchrFarbe = getState("vis-inventwo.0.CSS.Text").val;     /* Schriftfarbe Kalenderkopf */
              var Khgrund = getState("vis-inventwo.0.CSS.Button").val;        /* Hintergrundfarbe Kalenderkopf */
              var TSchrArt = "Verdana,Arial"; /* Schriftart Tagesanzeige */
              var TSchrGroesse = 3;           /* Schriftgroesse 1-7 Tagesanzeige */
              var TSchrFarbe = getState("vis-inventwo.0.CSS.Active").val;     /* Schriftfarbe Tagesanzeige */
              var Thgrund = getState("vis-inventwo.0.CSS.Button").val;       /* Hintergrundfarbe Tagesanzeige */
              var SoFarbe = "#E00000";        /* Schriftfarbe f. Sonntage */
              var Ahgrund = getState("vis-inventwo.0.CSS.Active").val;         /* Hintergrundfarbe f. heutigen Tag */
              var ASchrFarbe = getState("vis-inventwo.0.CSS.Button").val;         /* Schriftfarbe f. heutigen Tag */
              
              var jetzt = new Date();
              var DieserMonat = jetzt.getMonth() + 1;
              var DiesesJahr = jetzt.getYear();
              if(DiesesJahr < 999) DiesesJahr+=1900;
              var DieserTag = jetzt.getDate();
              var Zeit = new Date(Jahr,Monat-1,1);
              var Start = Zeit.getDay();
              if(Start > 0) Start--;
              else Start = 6;
              var Stop = 31;
              if(Monat==4 ||Monat==6 || Monat==9 || Monat==11 ) --Stop;
              if(Monat==2) {
              Stop = Stop - 3;
              if(Jahr%4==0) Stop++;
              if(Jahr%100==0) Stop--;
              if(Jahr%400==0) Stop++;
              }
              
              kalender = '<table border="1" cellpadding="1" cellspacing="1">';
              var Monatskopf = Monatsname[Monat-1] + " " + Jahr;
              SchreibeKopf(Monatskopf,Khgrund,KSchrFarbe,KSchrGroesse,KSchrArt);
              var Tageszahl = 1;
              for(var i=0;i<=5;i++) {
               kalender +="<tr>";
               for(var j=0;j<=5;j++) {
                 if((i==0)&&(j < Start))
                  SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                 else {
                   if(Tageszahl > Stop)
                     SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                   else {
                     if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
                      SchreibeZelle(Tageszahl,Ahgrund,ASchrFarbe,TSchrFarbe,TSchrGroesse,TSchrArt);
                     else
                      SchreibeZelle(Tageszahl,Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                     Tageszahl++;
                     }
                   }
                 }
                 if(Tageszahl > Stop)
                   SchreibeZelle("&#160;",Thgrund,SoFarbe,TSchrGroesse,TSchrArt);
                 else {
                   if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
                     SchreibeZelle(Tageszahl,Ahgrund,ASchrFarbe,SoFarbe,TSchrGroesse,TSchrArt);
                   else
                     SchreibeZelle(Tageszahl,Thgrund,SoFarbe,TSchrGroesse,TSchrArt);
                   Tageszahl++;
                 }
                 kalender += "<\/tr>";
               }
              kalender += "<\/table>";
              }
              
              function SchreibeKopf(Monatstitel,HgFarbe,SchrFarbe,SchrGroesse,SchrArt) {
              kalender += "<tr>";
              kalender += '<td align="center" colspan="7" valign="middle" bgcolor="'+HgFarbe+'">';
              kalender += '<font size="'+SchrGroesse+'" color="'+SchrFarbe+'" face="'+SchrArt+'"><b>';
              kalender += (Monatstitel);
              kalender += "<\/b><\/font><\/td><\/tr>";
              kalender += "<tr>";
              for(var i=0;i<=6;i++)
               SchreibeZelle(Tag[i],HgFarbe,SchrFarbe,SchrGroesse,SchrArt);
              kalender += "<\/tr>";
              }
              
              function SchreibeZelle(Inhalt,HgFarbe,SchrFarbe,SchrGroesse,SchrArt) {
              kalender += '<td align="center" valign="middle" bgcolor="'+HgFarbe+'">';
              kalender += '<font size="'+SchrGroesse+'" color="'+SchrFarbe+'" face="'+SchrArt+'"><b>';
              kalender += (Inhalt);
              kalender += "<\/b><\/font><\/td>";
              }
              
              setState("0_userdata.0.Vis_Kalender", kalender);
              });
              
              D 1 Antwort Letzte Antwort
              1
              • S senger1985

                Ich wollte mal mein Fortschritt mitteilen, einen "einfachen" Kalender, in der Vis anzuzeigen.

                Es muss ein JS erstellt werden und ein eigener Datenpunkt, den man dann in der Vis, mittels "basic-HTML"-Widget ausgeben kann.

                schedule('0,6,21 * * *', async function () {
                var d = new Date();
                var dm = d.getMonth() + 1;
                var dj = d.getYear();
                if(dj < 999) dj+=1900;
                Kalender(dm,dj);
                
                function Kalender(Monat,Jahr) {
                Monatsname = new Array
                ("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli",
                "August","September","Oktober","November","Dezember");
                Tag = new Array ("Mo","Di","Mi","Do","Fr","Sa","So");
                
                var KSchrArt = "Verdana,Arial"; /* Schriftart Kalenderkopf */
                var KSchrGroesse = 3;           /* Schriftgroesse 1-7 Kalenderkopf */
                var KSchrFarbe = getState("vis-inventwo.0.CSS.Text").val;     /* Schriftfarbe Kalenderkopf */
                var Khgrund = getState("vis-inventwo.0.CSS.Button").val;        /* Hintergrundfarbe Kalenderkopf */
                var TSchrArt = "Verdana,Arial"; /* Schriftart Tagesanzeige */
                var TSchrGroesse = 3;           /* Schriftgroesse 1-7 Tagesanzeige */
                var TSchrFarbe = getState("vis-inventwo.0.CSS.Active").val;     /* Schriftfarbe Tagesanzeige */
                var Thgrund = getState("vis-inventwo.0.CSS.Button").val;       /* Hintergrundfarbe Tagesanzeige */
                var SoFarbe = "#E00000";        /* Schriftfarbe f. Sonntage */
                var Ahgrund = getState("vis-inventwo.0.CSS.Active").val;         /* Hintergrundfarbe f. heutigen Tag */
                var ASchrFarbe = getState("vis-inventwo.0.CSS.Button").val;         /* Schriftfarbe f. heutigen Tag */
                
                var jetzt = new Date();
                var DieserMonat = jetzt.getMonth() + 1;
                var DiesesJahr = jetzt.getYear();
                if(DiesesJahr < 999) DiesesJahr+=1900;
                var DieserTag = jetzt.getDate();
                var Zeit = new Date(Jahr,Monat-1,1);
                var Start = Zeit.getDay();
                if(Start > 0) Start--;
                else Start = 6;
                var Stop = 31;
                if(Monat==4 ||Monat==6 || Monat==9 || Monat==11 ) --Stop;
                if(Monat==2) {
                Stop = Stop - 3;
                if(Jahr%4==0) Stop++;
                if(Jahr%100==0) Stop--;
                if(Jahr%400==0) Stop++;
                }
                
                kalender = '<table border="1" cellpadding="1" cellspacing="1">';
                var Monatskopf = Monatsname[Monat-1] + " " + Jahr;
                SchreibeKopf(Monatskopf,Khgrund,KSchrFarbe,KSchrGroesse,KSchrArt);
                var Tageszahl = 1;
                for(var i=0;i<=5;i++) {
                 kalender +="<tr>";
                 for(var j=0;j<=5;j++) {
                   if((i==0)&&(j < Start))
                    SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                   else {
                     if(Tageszahl > Stop)
                       SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                     else {
                       if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
                        SchreibeZelle(Tageszahl,Ahgrund,ASchrFarbe,TSchrFarbe,TSchrGroesse,TSchrArt);
                       else
                        SchreibeZelle(Tageszahl,Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
                       Tageszahl++;
                       }
                     }
                   }
                   if(Tageszahl > Stop)
                     SchreibeZelle("&#160;",Thgrund,SoFarbe,TSchrGroesse,TSchrArt);
                   else {
                     if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
                       SchreibeZelle(Tageszahl,Ahgrund,ASchrFarbe,SoFarbe,TSchrGroesse,TSchrArt);
                     else
                       SchreibeZelle(Tageszahl,Thgrund,SoFarbe,TSchrGroesse,TSchrArt);
                     Tageszahl++;
                   }
                   kalender += "<\/tr>";
                 }
                kalender += "<\/table>";
                }
                
                function SchreibeKopf(Monatstitel,HgFarbe,SchrFarbe,SchrGroesse,SchrArt) {
                kalender += "<tr>";
                kalender += '<td align="center" colspan="7" valign="middle" bgcolor="'+HgFarbe+'">';
                kalender += '<font size="'+SchrGroesse+'" color="'+SchrFarbe+'" face="'+SchrArt+'"><b>';
                kalender += (Monatstitel);
                kalender += "<\/b><\/font><\/td><\/tr>";
                kalender += "<tr>";
                for(var i=0;i<=6;i++)
                 SchreibeZelle(Tag[i],HgFarbe,SchrFarbe,SchrGroesse,SchrArt);
                kalender += "<\/tr>";
                }
                
                function SchreibeZelle(Inhalt,HgFarbe,SchrFarbe,SchrGroesse,SchrArt) {
                kalender += '<td align="center" valign="middle" bgcolor="'+HgFarbe+'">';
                kalender += '<font size="'+SchrGroesse+'" color="'+SchrFarbe+'" face="'+SchrArt+'"><b>';
                kalender += (Inhalt);
                kalender += "<\/b><\/font><\/td>";
                }
                
                setState("0_userdata.0.Vis_Kalender", kalender);
                });
                
                D Offline
                D Offline
                der-eine
                schrieb am zuletzt editiert von
                #38

                @senger1985 gibts dazu auch ein Bild aus deiner VIS? Danke fürs teilen. :+1:

                S 1 Antwort Letzte Antwort
                0
                • D der-eine

                  @senger1985 gibts dazu auch ein Bild aus deiner VIS? Danke fürs teilen. :+1:

                  S Offline
                  S Offline
                  senger1985
                  schrieb am zuletzt editiert von
                  #39

                  @der-eine kal.PNG
                  Natürlich

                  Eingeblendet, über ein PopUp.

                  Da ich immer nur mal wieder, den Wochentag, eines bestimmten Datums wissen möchte, reicht mir diese Ansicht vollkommen aus.

                  1 Antwort Letzte Antwort
                  1
                  • A adarof

                    Hallo
                    Könnt Ihr mir mal bitte die Einstellungen bei Google bzgl. Freigabe von Eurem Kalender schicken?
                    Habt Ihr das hier vielleicht freigegeben?
                    ![Bild Text](KalenderFreigabefürVis.png Bild Link)
                    Ich bin mit dem richtigen Login im Chrome eingelogged bei Google und kann, wenn ich den Link direkt im Browser eingebe, auch auf den Kalender zugreifen. Wenn ich das per iFrame im Vis einbinde, kommt aber besagte Fehlermeldung.

                    Gruss

                    M Offline
                    M Offline
                    marsmännchen
                    schrieb am zuletzt editiert von
                    #40

                    @adarof
                    Hallo, hast du vielleicht hinbekommen den IFrame zu implementieren?
                    Bei Windows funktionierts mal wieder, Raspberry/chromium nicht.
                    MfG
                    Patrick

                    Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                    Wago PFC200 mit Dali Lichtsteuerung.

                    A 1 Antwort Letzte Antwort
                    0
                    • M marsmännchen

                      @adarof
                      Hallo, hast du vielleicht hinbekommen den IFrame zu implementieren?
                      Bei Windows funktionierts mal wieder, Raspberry/chromium nicht.
                      MfG
                      Patrick

                      A Offline
                      A Offline
                      adarof
                      schrieb am zuletzt editiert von
                      #41

                      @marsmännchen Nein, ich hab das aufgegeben. Falls Du noch eine Idee hast ... sehr gern

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      554

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe