diff --git a/server/api/controller/event.js b/server/api/controller/event.js index 4c7aa5cf..5dc55b0e 100644 --- a/server/api/controller/event.js +++ b/server/api/controller/event.js @@ -104,7 +104,11 @@ const eventController = { if (format === 'json') { res.json(event) } else if (format === 'ics') { - exportController.ics(req, res, [event]) + // last arg is alarms/reminder, ref: https://github.com/adamgibbons/ics#attributes (alarms) + exportController.ics(req, res, [event], [{ + action: 'display', + trigger: { hours: 1, before: true } + }]) } } else { res.sendStatus(404) diff --git a/server/api/controller/export.js b/server/api/controller/export.js index e26047ee..8856b385 100644 --- a/server/api/controller/export.js +++ b/server/api/controller/export.js @@ -48,7 +48,12 @@ const exportController = { res.render('feed/rss.pug', { events, settings: req.settings, moment }) }, - ics (req, res, events) { + /** + * send an ics of specified events (optionally with reminders) + * @param {*} events array of events from sequelize + * @param {*} alarms https://github.com/adamgibbons/ics#attributes (alarms) + */ + ics (req, res, events, alarms = []) { const eventsMap = events.map(e => { const tmpStart = moment.unix(e.start_datetime) const tmpEnd = moment.unix(e.end_datetime) @@ -63,15 +68,12 @@ const exportController = { description: e.description, location: `${e.place.name} - ${e.place.address}`, url: `${req.settings.baseurl}/event/${e.id}`, - alarms: [{ - action: 'display', - trigger: { hours: 1, before: true } - }] + alarms } }) res.type('text/calendar; charset=UTF-8') - const { error, value } = ics.createEvents(eventsMap) - res.send(value) + const ret = ics.createEvents(eventsMap) + res.send(ret.value) } }