Multipart email with text and calendar: Outlook doesn't recognize ics
You are missing the iTIP method, both in the content-type:
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
and as a VCALENDAR property as well:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:-//GourmetPortal//NONSGML rr//DE
The method might be PUBLISH or REQUEST (in which case you also miss some ATTENDEE property).
Then, some clients are ignoring iMIP in multipart/alternative and are looking only as attachments so you may need to try the following structure:
multipart/mixed
multipart/alternative
text/plain
text/calendar;method=REQUEST
text/calendar (with a content-disposition:attachment)
Essentially, you are adding the attachment twice. iMIP invitation from google/yahoo calendar and lightning have such a structure.
To make sure Outlook always recognizes the iCal part, create a message where text/calendar is the only MIME part. Everything else (body, attachments, etc.) should be embedded in the VEVENT part.