@@ -794,6 +794,10 @@ export class WeekPlannerCard extends LitElement {
794794 if ( calendarSorting < this . _calendarEvents [ eventKey ] . calendarSorting ) {
795795 this . _calendarEvents [ eventKey ] . calendarSorting = calendarSorting ;
796796 }
797+ if ( calendar . maxEvents > 0 && this . _calendarEvents [ eventKey ] . calendarMaxEvents < calendar . maxEvents ) {
798+ this . _calendarEvents [ eventKey ] . calendarMaxEvents = calendar . maxEvents ;
799+ this . _calendarEvents [ eventKey ] . calendarMaxEventsCalendar = calendar . name ;
800+ }
797801 } else {
798802 this . _calendarEvents [ eventKey ] = {
799803 summary : this . _filterEventSummary ( title ?? null , calendar ) ,
@@ -809,6 +813,8 @@ export class WeekPlannerCard extends LitElement {
809813 calendars : [ calendar . entity ] ,
810814 calendarSorting : calendarSorting ,
811815 calendarNames : [ calendar . name ] ,
816+ calendarMaxEvents : calendar . maxEvents ?? 0 ,
817+ calendarMaxEventsCalendar : calendar . name ,
812818 class : this . _getEventClass ( startDate , endDate , fullDay )
813819 }
814820 this . _events [ dateKey ] . push ( eventKey ) ;
@@ -926,7 +932,24 @@ export class WeekPlannerCard extends LitElement {
926932 return this . _calendarEvents [ event1 ] . start > this . _calendarEvents [ event2 ] . start ? 1 : - 1 ;
927933 } ) ;
928934
929- const previousNumberOfEvents = numberOfEvents ;
935+ let matchingEventsCount = { } ;
936+ events = events . filter ( ( event , index , self ) => {
937+ let limit = this . _calendarEvents [ event ] . calendarMaxEvents ;
938+ if ( limit === 0 ) {
939+ return true ; // no limit set
940+ }
941+
942+ let limitingCalendar = this . _calendarEvents [ event ] . calendarMaxEventsCalendar ;
943+ if ( ! ( limitingCalendar in matchingEventsCount ) ) {
944+ matchingEventsCount [ limitingCalendar ] = 0 ;
945+ }
946+ if ( matchingEventsCount [ limitingCalendar ] < limit ) {
947+ matchingEventsCount [ limitingCalendar ] ++ ;
948+ return true ;
949+ }
950+ return false ;
951+ } ) ;
952+
930953 numberOfEvents += events . length ;
931954
932955 if ( this . _maxEvents > 0 && numberOfEvents > this . _maxEvents ) {
0 commit comments