@@ -122,6 +122,8 @@ class AtomicCalendarRevive extends LitElement {
122122 showFullDayProgress : false ,
123123 progressBarColor : 'var(--primary-color)' ,
124124
125+ showDeclined : false ,
126+
125127 enableModeChange : false ,
126128 defaultMode : 1 ,
127129
@@ -779,6 +781,17 @@ class AtomicCalendarRevive extends LitElement {
779781 } else return false
780782 }
781783
784+ /**
785+ * check if event was declined
786+ * @param {event } event data
787+ * @return {bool } Returns true if the event was declined
788+ */
789+ checkDeclined ( event ) {
790+ if ( ! event . attendees ) { return false }
791+ if ( ! event . attendees . length > 0 ) { return false }
792+ return ! ! event . attendees . find ( a => a . self == true && a . responseStatus == "declined" )
793+ }
794+
782795 /**
783796 * gets events from HA Calendar to Events mode
784797 *
@@ -803,7 +816,17 @@ class AtomicCalendarRevive extends LitElement {
803816 let blacklist = typeof this . _config . entities [ i ] [ "blacklist" ] != 'undefined' ? this . _config . entities [ i ] [ "blacklist" ] : ''
804817 let whitelist = typeof this . _config . entities [ i ] [ "whitelist" ] != 'undefined' ? this . _config . entities [ i ] [ "whitelist" ] : ''
805818 let singleAPIEvent = new EventClass ( singleEvent , this . _config . entities [ i ] )
806- if ( ( this . _config . maxEventCount === 0 || eventCount < this . _config . maxEventCount ) && ( blacklist == '' || ! this . checkFilter ( singleEvent . summary , blacklist ) ) && ( whitelist == '' || this . checkFilter ( singleEvent . summary , whitelist ) ) && ( ( this . _config . maxDaysToShow === 0 && singleAPIEvent . isEventRunning ) || ! ( this . _config . hideFinishedEvents && singleAPIEvent . isEventFinished ) ) ) {
819+ if (
820+ ( this . _config . maxEventCount === 0 || eventCount < this . _config . maxEventCount )
821+ &&
822+ ( blacklist == '' || ! this . checkFilter ( singleEvent . summary , blacklist ) )
823+ &&
824+ ( whitelist == '' || this . checkFilter ( singleEvent . summary , whitelist ) )
825+ &&
826+ ( this . _config . showDeclined || ! this . checkDeclined ( singleEvent ) )
827+ &&
828+ ( ( this . _config . maxDaysToShow === 0 && singleAPIEvent . isEventRunning ) || ! ( this . _config . hideFinishedEvents && singleAPIEvent . isEventFinished ) )
829+ ) {
807830 singleEvents . push ( singleAPIEvent ) ;
808831 eventCount ++ ;
809832 }
@@ -869,7 +892,17 @@ class AtomicCalendarRevive extends LitElement {
869892 var filteredEvents = eventsArray . filter ( ( event ) => {
870893 const startTime = event . start . dateTime ? moment ( event . start . dateTime ) : moment ( event . start . date ) . startOf ( 'day' )
871894 const endTime = event . end . dateTime ? moment ( event . end . dateTime ) : moment ( event . end . date ) . subtract ( 1 , 'days' ) . endOf ( 'day' )
872- if ( ! moment ( startTime ) . isAfter ( m . date , 'day' ) && ! moment ( endTime ) . isBefore ( m . date , 'day' ) && calendarTypes && ! this . checkFilter ( event . summary , calendarBlacklist ) )
895+ if (
896+ ! moment ( startTime ) . isAfter ( m . date , 'day' )
897+ &&
898+ ! moment ( endTime ) . isBefore ( m . date , 'day' )
899+ &&
900+ calendarTypes
901+ &&
902+ ( this . _config . showDeclined || ! this . checkDeclined ( event ) )
903+ &&
904+ ! this . checkFilter ( event . summary , calendarBlacklist )
905+ )
873906 return event
874907 } )
875908 var filteredEvents = filteredEvents . map ( ( event ) => {
0 commit comments