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. Material design calendar widget ical konvertierung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    844

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Material design calendar widget ical konvertierung

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 170 Aufrufe 1 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.
  • G Offline
    G Offline
    grazer2500
    schrieb am zuletzt editiert von
    #1

    Hallo,
    Ich habe das material design widget und den ical Adapter installiert.
    Und auch soweit konfiguriert.
    Im ical Adapter werden alle Termine angezeigt. Aber bei der Visualisierung im material design calendar widget mit dem Script werden mir nicht alle Termine angezeigt.

    Welche Informationen braucht ihr um das nachzuvollziehen?

    // momentjs is required as dependecies in javascript adapter
    const moment = require("moment");
    
    var instances = $(`[id=ical.*.data.table]`);
    instances.on(ical2CalendarWidget);
    
    // remove this, if you know to use your own datapoint
    let datapointId = 'materialdesignwidgets.calendar.ical2calendar'
    createState(datapointId, "[]", {
      read: true, 
      write: false, 
      desc: "JSON String for Calendar Widget", 
      type: "string", 
      def: "[]"
    });
    
    function ical2CalendarWidget() {
        try {
            let calList = [];
    
            for (var inst = 0; inst <= instances.length - 1; inst++) {
                let icalObj = getState(instances[inst]).val;
    
                if (icalObj) {
                    for (var i = 0; i <= icalObj.length - 1; i++) {
                        let item = icalObj[i];
    
                        // extract calendar color
                        let calendarName = item._class.split(' ')[0].replace('ical_', '');
    
                        let startTime = moment(item._date);
                        let endTime = moment(item._end);
                        
                        let start = startTime.format("YYYY-MM-DD HH:mm");
                        let end = endTime.format("YYYY-MM-DD HH:mm");
    
                        if (startTime.format('HH:mm') === '00:00' && endTime.format('HH:mm') === '00:00') {
                            // is full-day event
                            if (endTime.diff(startTime, 'hours') === 24) {
                                // full-day event, one day
                                start = startTime.format("YYYY-MM-DD");
                                end = startTime.format("YYYY-MM-DD");
                            } else {
                                // full-day event, multiple days
                                start = startTime.format("YYYY-MM-DD");
                                end = endTime.format("YYYY-MM-DD");
                            }
                        }
    
                        // create object for calendar widget
                        calList.push({
                            name: item.event,
                            color: getMyCalendarColor(calendarName),
                            colorText: getMyCalendarTextColor(calendarName),
                            start: start,
                            end: end
                        })
                    }
    
                    function getMyCalendarColor(calendarName) {
                        // assign colors via the calendar names, use calendar name as set in ical
                        if (calendarName === 'calendar1') {
                            return '#FF0000';
                        } else if (calendarName === 'calendar2') {
                            return '#44739e'
                        } else if (calendarName === 'calendar3') {
                            return '#32a852'
                        }
                    }
    
                    function getMyCalendarTextColor(calendarName) {
                        // assign colors via the calendar names, use calendar name as set in ical
                        if (calendarName === 'calendar1') {
                            return '#FFFFFF';
                        } else if (calendarName === 'calendar2') {
                            return '#FFFFFF'
                        } else if (calendarName === 'calendar3') {
                            return '#FFFFFF'
                        }
                    }
                }
    
                // Enter the destination data point that is to be used as object ID in the widget                
                setState(datapointId, JSON.stringify(calList), true);
            }
        } catch (e) {
            console.error(`ical2MaterialDesignCalendarWidget: message: ${e.message}, stack: ${e.stack}`);
        }
    }
    
    ical2CalendarWidget();
    

    Habe alle Termine zensiert, sollte aber erkennbar sein das viele fehlen

    Bildschirmfoto vom 2023-11-29 10-06-54.png Bildschirmfoto vom 2023-11-29 10-07-21.png Bildschirmfoto vom 2023-11-29 10-07-08.png

    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

    672

    Online

    32.6k

    Benutzer

    82.1k

    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