use ical.js to parse calendar data

This commit is contained in:
basti76
2018-09-10 16:42:15 +02:00
parent a6c5e2ca21
commit 59ebab8467

View File

@ -2,6 +2,7 @@ module.exports = function(RED) {
let dav = require('dav')
let webdav = require('webdav')
const fs = require('fs')
const ICAL = require('ical.js');
function NextcloudConfigNode(n) {
RED.nodes.createNode(this, n)
@ -46,13 +47,17 @@ module.exports = function(RED) {
.then(function (calendarEntries) {
let icsList = { 'payload': { 'name': calendar.displayName, 'data': [] } }
calendarEntries.forEach(function (calendarEntry) {
const keyValue = calendarEntry.calendarData.split('\n')
let icsJson = {}
for (let x = 0; x < keyValue.length; x++) {
const temp = keyValue[x].split(':')
icsJson[temp[0]] = temp[1]
node.warn(calendarEntry.calendarData);
node.warn(JSON.stringify(calendarEntry.calendarData.split('\n')));
try {
let jCalData = ICAL.parse(calendarEntry.calendarData);
let component = new ICAL.Component(jCalData);
let vevent = component.getFirstSubcomponent('vevent');
var event = new ICAL.Event(vevent);
icsList.payload.data.push(event);
} catch (error) {
node.error("Error parsing calendar data: " + error);
}
icsList.payload.data.push(icsJson)
})
node.send(icsList)
}, function () {