Thank you for your help.
The hint with the property list is great, i gonna try that out.
In the mean time i did some further research and found the main reason for the error message i got. As you suggested I did serialize my custom object to NSData using a NSKeyedArchiver in my iOS App. In my WatchApp i read out the NSData and deserialize it to my custom object using a NSKeyedUnarchiver. The problem there was that my NSKeyedUnarchiver was not able to deserialize a class named "Events.Event" (which is iosAppTarget.myCustomClass) since it has no access to a class with that name. It only knows the class "EventsWatchKitExtension.Event (which is watchKitExtensionTarget.myCustomClass) and so it is not able to deserialize such an object. I assume that NSKeyArchiver/Unarchiver use kind of a key/value store with a string key for target.class and a class value. Since the keys between my iOS App and the WatchKit Extensions differ, the WatchKitExtension is not able to deserialize an object which is serialized by the iOSApp.
There is a possibility to solve this issue by configuring the NSKeyedArchiver or NSKeyedUnarchiver. What I finally did is calling NSKeyedArchiver.setClassName("Event", forClass: Event.self) before serializing in my iOSApp and NSKeyedUnarchiver.setClass(Event.self, forClassName: "Event") before deserializing in my WatchKitExtension. So they both use the same key (without the target name in it) but the class from the own namespace to serialize or deserialize. This way i was finally able to serialize the custom objects in my iOS App, send it using WatchConnectivity and deserialize them again in my WatchKitExtension.
Perhaps this solution can help somebody solving some kind of serialization problems as well..