Seems like one wants to make use of CalendarLibEC from Shane (https://latenightsw.com/freeware/)
use script "CalendarLib EC" model "1.1.5"
use AppleScript model "2.4" -- Yosemite (10.10) or later
use scripting additions
-- Change variables under
set SourceCalendarName to "VV Important"
set DestinationCalendarName to "VV Mirror"
set meetingProxy to "VV Assembly"
set addRecurringEvents to false
set numberofdays to 7
-- Modifications shouldn't be required under, however proceed at your individual threat
set in the present day to present date
set startDay to (in the present day)
set time of startDay to 0
set endDay to (startDay + (numberofdays * days))
set numberOfEventsAdded to 0
set numberofEventsFailedtoCopy to 0
set theStore to («occasion !Cls!fst»)
-- The unique script solely compares occasions' begin and finish dates.
set destCal to («occasion !CLs!fca» DestinationCalendarName given «class !Cty»:«fixed !Tct!TtC», «class !Cst»:theStore) -- change calendar kind to go well with
set existingEventList to («occasion !CLs!feS» given «class !Csd»:startDay, «class !Ced»:endDay, «class !Csc»:{destCal}, «class !Cst»:theStore)
repeat with thisEvent in existingEventList
set {event_start_date:startDate, event_end_date:endDate} to («occasion !CLs!inf» given «class !Cev»:thisEvent)
set thisEvent's contents to {startDate, endDate}
finish repeat
set existingEventDates to existingEventList -- Use a special variable now for readability.
-- Get the supply calendar occasions which fall inside the similar date vary.
set sourceCal to («occasion !CLs!fca» SourceCalendarName given «class !Cty»:«fixed !Tct!TtC», «class !Cst»:theStore) -- change to go well with
set sourceEventList to («occasion !CLs!feS» given «class !Csd»:startDay, «class !Ced»:endDay, «class !Csc»:{sourceCal}, «class !Cst»:theStore)
repeat with eventIdx from 1 to size of sourceEventList
set newEvent to merchandise eventIdx of sourceEventList
-- Get the information of curiosity for every supply occasion.
strive
set {event_external_ID:eventID, event_start_date:startDate, event_end_date:endDate, all_day:isAllday, event_is_recurring:isRecurring} to («occasion !CLs!inf» given «class !Cev»:newEvent)
-- If its begin and finish dates aren't in existingEventDates, create a brand new occasion utilizing the Calendar appplication..
if (existingEventDates doesn't include {{startDate, endDate}}) then
inform utility "Calendar"
set destEvent to (make new occasion at finish of calendar DestinationCalendarName's occasions with properties {begin date:startDate, finish date:endDate, abstract:meetingProxy, allday occasion:isAllday})
if addRecurringEvents is true then
if (isRecurring) then
set destEvent's recurrence to recurrence of occasion id eventID of calendar SourceCalendarName
finish if
finish if
set finish of existingEventDates to {startDate, endDate} -- if required
set numberOfEventsAdded to numberOfEventsAdded + 1
finish inform
finish if
on error errMsg quantity -10000 --*** -L_NSDictionaryM setObject:forKey:]: object can't be nil (key: event_creation_date)
set eventIdx to {eventIdx + 1}
set numberofEventsFailedtoCopy to (numberofEventsFailedtoCopy + 1)
finish strive
finish repeat