diff --git a/docs/widgets/services/calendar.md b/docs/widgets/services/calendar.md index 990c01c26..b1bc0ea47 100644 --- a/docs/widgets/services/calendar.md +++ b/docs/widgets/services/calendar.md @@ -33,6 +33,7 @@ widget: type: calendar view: agenda maxEvents: 10 # optional - defaults to 10 + previousDays: 3 # optional - shows events since three days ago - defaults to 0 integrations: # same as in Monthly view example ``` diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 3a11954a8..b054fb960 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -351,6 +351,7 @@ export function cleanServiceGroups(groups) { firstDayInWeek, integrations, maxEvents, + previousDays, view, // coinmarketcap @@ -517,6 +518,7 @@ export function cleanServiceGroups(groups) { if (firstDayInWeek) cleanedService.widget.firstDayInWeek = firstDayInWeek; if (view) cleanedService.widget.view = view; if (maxEvents) cleanedService.widget.maxEvents = maxEvents; + if (previousDays) cleanedService.widget.previousDays = previousDays; } } diff --git a/src/widgets/calendar/agenda.jsx b/src/widgets/calendar/agenda.jsx index a854d277d..1ec4bb2e8 100644 --- a/src/widgets/calendar/agenda.jsx +++ b/src/widgets/calendar/agenda.jsx @@ -48,7 +48,9 @@ export default function Agenda({ service, colorVariants, showDate }) { const eventsArray = Object.keys(events) .filter( - (eventKey) => showDate.startOf("day").toUnixInteger() <= events[eventKey].date?.startOf("day").toUnixInteger(), + (eventKey) => + showDate.minus({ days: widget?.previousDays ?? 0 }).startOf("day").ts <= + events[eventKey].date?.startOf("day").ts, ) .map((eventKey) => events[eventKey]) .sort((a, b) => a.date - b.date)