In general, it is a best practice to at least send a multipart/alternative so that clients that dont know anything about the text/calendar format can show a readable message to the user. See https://www.rfc-editor.org/rfc/rfc6047#section-4.2 for an example.
Then, for an invitation to be an actual invitation it needs to have at least one ORGANIZER and one ATTENDEE property. See http://tools.ietf.org/search/rfc5546#section-3.2.2 for the list of mandatory properties. This should fix your issue.
Finally, showing us the actual MIME message that is sent would be more useful than showing code, at least as far as detecting interop issues with Outlook.