@@ -132,9 +132,13 @@ public static function sync(string $provider_id): void
132
132
133
133
$ sync_future_days = $ provider ['settings ' ]['sync_future_days ' ];
134
134
135
- $ start_date_time = date ('Y-m-d H:i:s ' , strtotime ('- ' . $ sync_past_days . ' days ' ));
135
+ $ start_date_time_object = new DateTime ('- ' . $ sync_past_days . ' days ' );
136
+ $ start_date_time_object ->setTime (0 , 0 );
137
+ $ start_date_time = $ start_date_time_object ->format ('Y-m-d H:i:s ' );
136
138
137
- $ end_date_time = date ('Y-m-d H:i:s ' , strtotime ('+ ' . $ sync_future_days . ' days ' ));
139
+ $ end_date_time_object = new DateTime ('+ ' . $ sync_future_days . ' days ' );
140
+ $ end_date_time_object ->setTime (23 , 59 , 59 );
141
+ $ end_date_time = $ end_date_time_object ->format ('Y-m-d H:i:s ' );
138
142
139
143
$ where = [
140
144
'start_datetime >= ' => $ start_date_time ,
@@ -253,6 +257,24 @@ public static function sync(string $provider_id): void
253
257
continue ;
254
258
}
255
259
260
+ $ matching_unavailability = $ CI ->unavailabilities_model
261
+ ->query ()
262
+ ->where ([
263
+ 'start_datetime ' => $ caldav_event ['start_datetime ' ],
264
+ 'end_datetime ' => $ caldav_event ['end_datetime ' ],
265
+ 'notes ' => $ caldav_event ['summary ' ] . ' ' . $ caldav_event ['description ' ],
266
+ 'id_users_provider ' => $ provider_id ,
267
+ ])
268
+ ->get ()
269
+ ->row_array ();
270
+
271
+ if ($ matching_unavailability ) {
272
+ // Update the ID of the matching unavailability record.
273
+ $ matching_unavailability ['id_caldav_calendar ' ] = $ caldav_event ['id ' ];
274
+ $ CI ->unavailabilities_model ->save ($ matching_unavailability );
275
+ continue ;
276
+ }
277
+
256
278
// Record doesn't exist in the Easy!Appointments, so add the event now.
257
279
258
280
$ local_event = [
0 commit comments