Localize custom element types
I got it. I added this function to the Event_ElementType    

public function isLocalized()
{
    return true;
}


This adds a language selector to your event index.

Then I enhanced the locale to the URL in getCpEditUrl() of the EventModel:

$locale = (craft()-&gt;isLocalized() &amp;&amp; $this-&gt;locale != craft()-&gt;language) ? '/' . $this-&gt;locale : '';
return UrlHelper::getCpUrl('events/'.$calendar-&gt;handle.'/'.$this-&gt;id . $locale );


The additional route for the locale edit form is like this:

events/(?P&lt;calendarHandle&gt;{handle})/(?P&lt;eventId&gt;\d+)/(?P&lt;locale&gt;[-\w\.*]+)' =&gt; array('action' =&gt; 'events/editEvent')