I am trying to make a mirror of one calendar into another for the a set period of time (say 1 week). However when I run the script below it only copies non-recurring events. Any pointers on how to fix this is much appreciated
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
set SourceCalendarName to "VV Main"
set DestinationCalendarName to "VV Mirror"
set meetingProxy to "VV Meeting"
set today to current date
set numberofdays to 7
set startDay to ((current date) - (1 * days))
set time of startDay to 0
set endDay to ((startDay) + (numberofdays * days))
--set time of endDay to
set numberOfEventsAdded to 0
tell application "Calendar"
set sourceCalendar to calendar SourceCalendarName
set destinationCalendar to calendar DestinationCalendarName
(*
tell destinationCalendar
delete (events)
end tell
*)
set sourceEventList to (events of sourceCalendar where (its start date > startDay) and (its start date < endDay))
repeat with eventIdx from 1 to length of sourceEventList
set newEvent to item eventIdx of sourceEventList
--repeat with newEvent in (get events of sourceCalendar whose (start date is greater than startDay) and (start date is less than endDay))
set existingEventList to (events of destinationCalendar)
set eventExists to false
if length of existingEventList is not 0 then
repeat with checkEvent in existingEventList
if ((start date of checkEvent = start date of newEvent) and (end date of checkEvent = end date of newEvent)) then
set eventExists to true
exit repeat
end if
end repeat
end if
if eventExists is false then
tell destinationCalendar
set destEvent to (make new event at end of events with properties {start date:start date of newEvent, end date:end date of newEvent, summary:meetingProxy, allday event:allday event of newEvent, description:(uid of newEvent as text)})
if recurrence of destEvent is not missing value then
set recurrence of destEvent to recurrence of newEvent
end if
end tell
end if
--set numberOfEventsAdded to (numberOfEventsAdded + 1)
end repeat
end tell