UNPKG

n8n-nodes-nextcloud-calendar

Version:

n8n Node für die Integration mit Nextcloud Calendar

50 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatEvent = formatEvent; const uuid_1 = require("uuid"); function formatEvent(eventData) { const uid = (0, uuid_1.v4)(); const now = new Date().toISOString().replace(/[-:.]/g, ''); let iCalString = `BEGIN:VCALENDAR VERSION:2.0 PRODID:-//n8n//Nextcloud Calendar Node//EN BEGIN:VEVENT UID:${uid} DTSTAMP:${now.substring(0, 15)}Z DTSTART:${eventData.start.replace(/[-:.]/g, '')} DTEND:${eventData.end.replace(/[-:.]/g, '')} SUMMARY:${eventData.title} SEQUENCE:0 STATUS:CONFIRMED\n`; if (eventData.description) { iCalString += `DESCRIPTION:${eventData.description.replace(/\\n/g, '\\n')}\n`; } if (eventData.location) { iCalString += `LOCATION:${eventData.location}\n`; } iCalString += 'CLASS:PUBLIC\n'; iCalString += `X-NC-GROUP-ID:${uid}\n`; if (eventData.organizer) { iCalString += `ORGANIZER;CN=${eventData.organizer.displayName}:mailto:${eventData.organizer.email}\n`; } if (eventData.attendees && eventData.attendees.length > 0) { eventData.attendees.forEach((attendee) => { let attendeeString = 'ATTENDEE;CUTYPE=INDIVIDUAL'; if (attendee.displayName) { attendeeString += `;CN=${attendee.displayName}`; } if (attendee.role) { attendeeString += `;ROLE=${attendee.role}`; } if (attendee.rsvp) { attendeeString += ';RSVP=TRUE'; } attendeeString += `:mailto:${attendee.email}\n`; iCalString += attendeeString; }); } iCalString += `END:VEVENT END:VCALENDAR`; return iCalString; } //# sourceMappingURL=formatter.js.map