If you want to give them a nudge in the right direction, you could suggest they implement collection mutation methods. In this case, probably something like insertObject:inEventsForScriptingAtIndex: and reomveObjectFromEventsForScriptingAtIndex:.
Meanwhile the speediest solution is probably to use EventKit directly. For example, since you know the UID, you could use this for deletion:
use scripting additions
use framework "Foundation"
use framework "EventKit"
set theID to "374F621E-8B76-4082-8ED8-C8CECD5C6E5B"
set calTitle to "Home"
its deletEventWithID:theID inCalName:calTitle
on deletEventWithID:theID inCalName:calTitle
-- create event store and get the OK to access Calendars
set theEKEventStore to current application's EKEventStore's alloc()'s init()
theEKEventStore's requestAccessToEntityType:0 completion:(missing value)
-- check if app has access; this will still occur the first time you OK authorization
set authorizationStatus to current application's EKEventStore's authorizationStatusForEntityType:0 -- work around enum bug
if authorizationStatus is not 3 then
display dialog "Access must be given in System Preferences" & linefeed & "-> Security & Privacy first." buttons {"OK"} default button 1
tell application "System Preferences"
activate
tell pane id "com.apple.preference.security" to reveal anchor "Privacy"
end tell
error number -128
end if
-- get events matching ID
set theEvents to (theEKEventStore's calendarItemsWithExternalIdentifier:theID)
-- Calendars.app uses non-uique IDs, so there may be more than one; in this case filter by calendar
if (count of theEvents) > 1 then
set theNSPredicate to current application's NSPredicate's predicateWithFormat_("calendar.title == %@", calTitle)
set theEvents to theEvents's filteredArrayUsingPredicate:theNSPredicate
end if
-- do the deletion(s)
repeat with anEvent in theEvents
(theEKEventStore's removeEvent:anEvent span:1 commit:true |error|:(missing value))
end repeat
end deletEventWithID:inCalName: