GcalRecurrence is shared/mutable. So, if we have curr.recur = ref(event.recur) orig.recur = ref(curr.recur) then recurrence_changed() will return false, since both orig.recur and curr.recur will point to the same object. We need fresh copies. Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>