@@ -133,14 +133,30 @@ func IsSameEvent(a, b Event) bool {
133133 return false
134134 }
135135
136- if ! a . StartTime . Equal ( b . StartTime ) {
137- log .Debugf ("StartTime of Source Event %s changed, sourceTime: %s, sinkTime: %s " , a .Title , a . StartTime , b .StartTime )
136+ if a . AllDay != b . AllDay {
137+ log .Debugf ("AllDay of Source Event %s at %s changed " , a .Title , a .StartTime )
138138 return false
139139 }
140140
141- if ! a .EndTime .Equal (b .EndTime ) {
142- log .Debugf ("EndTime of Source Event %s changed, sourceTime: %s, sinkTime: %s " , a .Title , a .StartTime , b .StartTime )
143- return false
141+ if a .AllDay && b .AllDay {
142+ // only compare dates
143+ if a .StartTime .Year () != b .StartTime .Year () || a .StartTime .YearDay () != b .StartTime .YearDay () {
144+ log .Debugf ("StartTime of all-day event %s changed, sourceTime: %s, sinkTime: %s" , a .Title , a .StartTime .Format (time .DateOnly ), b .StartTime .Format (time .DateOnly ))
145+ return false
146+ }
147+ if a .EndTime .Year () != b .EndTime .Year () || a .EndTime .YearDay () != b .EndTime .YearDay () {
148+ log .Debugf ("EndTime of all-day event %s changed, sourceTime: %s, sinkTime: %s" , a .Title , a .EndTime .Format (time .DateOnly ), b .EndTime .Format (time .DateOnly ))
149+ return false
150+ }
151+ } else {
152+ if ! a .StartTime .Equal (b .StartTime ) {
153+ log .Debugf ("StartTime of Source Event %s changed, sourceTime: %s, sinkTime: %s " , a .Title , a .StartTime , b .StartTime )
154+ return false
155+ }
156+ if ! a .EndTime .Equal (b .EndTime ) {
157+ log .Debugf ("EndTime of Source Event %s changed, sourceTime: %s, sinkTime: %s " , a .Title , a .StartTime , b .StartTime )
158+ return false
159+ }
144160 }
145161
146162 if a .AllDay != b .AllDay {
0 commit comments