Try this script. Open it with Script Editor, then save it as an application to the Desktop. When one of the baddies comes in, drag it from Mail and drop it on the script.
*****************************
(* AK April 2012
** take ics file dropped from mail attachment
** save it to sesame2.ics on desktop
** if it has both duration and end only one will be written to file
** after saving tell iCal to read it
** will not work if multiple events in attachment
** all sorts of other problems could stop it working!
*)
on openicsFile
set TheList to readicsFile
set icsName to ((path to desktop) as string) & "sesame2.ics"
set NewICSFile to open for accessicsName with write permission
set EventBits to paragraphs of TheList
set ABit to item 1 of EventBits
repeat until ABit starts with "BEGIN:VEVENT"
writeABit & returntoNewICSFile
set EventBits to rest of EventBits
set ABit to item 1 of EventBits
end repeat
writeABit & returntoNewICSFile
set EventBits to rest of EventBits
set ABit to item 1 of EventBits--at start of event
set BadBits to {} --hold end or duration or both
repeat until ABit starts with "END:VEVENT" --process the event
if (ABit starts with "DTEND") or (ABit starts with "DURATION") then
set BadBits to BadBits & ABit
else if ABit starts with "BEGIN:VALARM" then
repeat until ABit starts with "END:VALARM"
writeABit & returntoNewICSFile
set EventBits to rest of EventBits
set ABit to item 1 of EventBits
end repeat
writeABit & returntoNewICSFile
-- set EventBits to rest of EventBits
-- set ABit to item 1 of EventBits
else
writeABit & returntoNewICSFile
end if
set EventBits to rest of EventBits
set ABit to item 1 of EventBits
end repeat
write (item 1 of BadBits) & returntoNewICSFile
repeat with ABit in EventBits--event end, dump rest to file
writeABit & returntoNewICSFile
end repeat
close accessNewICSFile
tell application "iCal"
openicsName
end tell
end open
*************************