Skip to content

Commit 30a3b97

Browse files
committed
event: correctly handle all-day events
1 parent cbe0c58 commit 30a3b97

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

internal/models/event.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)