diff --git a/composer.json b/composer.json
index d6690f79645441ba523eee7e8f26eedb1f944d6e..a249370555b0f33ad999ad76777532e5ab2ffe51 100644
--- a/composer.json
+++ b/composer.json
@@ -8,7 +8,7 @@
     ],
 	"require": {
 		"silex/silex": ">=2.0",
-		"jards/eventsapiclient": ">=1.0",
+		"jards/eventsapiclient": "=3.0",
 		"phpmailer/phpmailer": ">=6.0"
 	},
 	"require-dev": {
diff --git a/composer.lock b/composer.lock
index adccc389c7bf515952704c159226a9066b345f52..10498c8f4881dd324feba26ba11e72cda5accb25 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,15 +4,15 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "41a9305ad2511010ee0643e4fd3aac1b",
+    "content-hash": "ab1d79ed4ca1b45fe369574aed53a416",
     "packages": [
         {
             "name": "jards/eventsapiclient",
-            "version": "v2.4",
+            "version": "v3.0",
             "source": {
                 "type": "git",
                 "url": "https://gitlab.version.fz-juelich.de/jards/EventsAPIClient.git",
-                "reference": "b36657b4f7bdf30e8f4f9c0ecf1d77af1a6bc085"
+                "reference": "ebb8d6f6e1d10fcebc46974e4b8886a489ef97fc"
             },
             "require": {
                 "ext-curl": "*",
@@ -29,12 +29,12 @@
             "type": "library",
             "autoload": {
                 "psr-4": {
-                    "Swagger\\Client\\": "lib/"
+                    "jards\\eventsapiclient\\Swagger\\Client\\": "lib/"
                 }
             },
             "autoload-dev": {
                 "psr-4": {
-                    "Swagger\\Client\\": "test/"
+                    "jards\\eventsapiclient\\Swagger\\Client\\": "test/"
                 }
             },
             "license": [
@@ -53,7 +53,7 @@
                 "sdk",
                 "swagger"
             ],
-            "time": "2018-01-15T15:34:22+00:00"
+            "time": "2018-01-16T07:04:14+00:00"
         },
         {
             "name": "phpmailer/phpmailer",
diff --git a/examples/test_swagger_api.php b/examples/test_swagger_api.php
index 8aa3f543ebba2dec43919eb65a3462b557621350..3f9a1adff14e017d7859e1fcdf6da2c2d3c4e58f 100644
--- a/examples/test_swagger_api.php
+++ b/examples/test_swagger_api.php
@@ -1,16 +1,16 @@
 <?php
 
 require_once __DIR__.'/../vendor/autoload.php';
-use Swagger\Client\Api\EventsApi;
+use jards\eventsapiclient\Swagger\Client\Api\EventsApi;
 
 /**
  * Configure the rest api client for the OIDC server access.
  *
- * @return \Swagger\Client\ApiClient the configured api client with access to the REST api
+ * @return \jards\eventsapiclient\Swagger\Client\ApiClient the configured api client with access to the REST api
  */
 function getDefaultApiClient() {
 	date_default_timezone_set ( 'Europe/Amsterdam' );
-	$apiClient = new \Swagger\Client\ApiClient ();
+	$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
 	$apiClient->getConfig ()->setHost ( 'http://localhost/myapps/EventsAPI/rest/events' );
 	return $apiClient;
 }
diff --git a/lib/EventListener.php b/lib/EventListener.php
index 48fe10f4752cf32f83651ac62e7ebeca26d7b43c..7294d1fbadab4b9c973ba3175bf6aa7e4bc08dbb 100644
--- a/lib/EventListener.php
+++ b/lib/EventListener.php
@@ -10,10 +10,12 @@ interface EventListener{
 	
 	/**
 	 * This is called for every new received event.
+	 * The event is provided in two formats: simple JSON decoded object and Swagger deserialized model.
 	 * 
 	 * @param object $event encoded object from JSON
+	 * @param \jards\eventsapiclient\Swagger\Client\Model\Event $event deserialized event ino Swagger model
 	 */
-	public function handleEvent($event);
+	public function handleEvent($jsonevent, $apievent);
 }
 
 ?>
\ No newline at end of file
diff --git a/lib/EventManagement.php b/lib/EventManagement.php
index c8f404c18635057dabaeaa70be688e19a2666111..e09d26fcf1c279e66166ec1558caa90f2c583cf2 100644
--- a/lib/EventManagement.php
+++ b/lib/EventManagement.php
@@ -5,8 +5,8 @@ namespace jards\eventsapi;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\JsonResponse;
-use Swagger\Client\Api\EventsApi;
-use Swagger\Client\Model\Event;
+use jards\eventsapiclient\Swagger\Client\Api\EventsApi;
+use jards\eventsapiclient\Swagger\Client\Model\Event;
 
 /**
  * Listen for events.
@@ -132,17 +132,27 @@ class EventManagement{
 			return new Response("New event sent.", 400);
 		}
 		
-		$event = json_decode($eventJSON);
+		$jsonevent = json_decode($eventJSON);
 		
-		if(!empty($event)){
+		if (json_last_error() > 0) { // if response is a string
+			return new Response("Could not read event.", 400);
+		}
+		
+		$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
+		/**
+		 * @var \jards\eventsapiclient\Swagger\Client\Model\Event $apievent
+		 */
+		$apievent = $apiClient->getSerializer()->deserialize($jsonevent, '\jards\eventsapiclient\Swagger\Client\Model\Event');
+		
+		if(!empty($jsonevent)){
 			foreach($this->handlers as $handler){
 				if($handler instanceof EventListener){
-					$handler->handleEvent($event);
+					$handler->handleEvent($jsonevent, $apievent);
 				}
 			}
 		}
 		
-		$name = $event->name;
+		$name = $apievent->getName();
 		
 		$newID = $this->getMaxEventID()+1;
 		$fileName = $this->dataFolder.'/'.$newID.'.obj';
@@ -169,7 +179,7 @@ class EventManagement{
 	public function sendEvent($name, $description, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null){
 		
 		date_default_timezone_set ( 'Europe/Amsterdam' );
-		$apiClient = new \Swagger\Client\ApiClient ();
+		$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
 		$apiClient->getConfig ()->setHost ( $baseURL );
 		
 		if(! empty($certFile)){
@@ -192,7 +202,7 @@ class EventManagement{
 		try{
 			$eventsApi->eventsPost($event);
 		}
-		catch(\Swagger\Client\ApiException $e){
+		catch(\jards\eventsapiclient\Swagger\Client\ApiException $e){
 			return false;
 		}
 		
diff --git a/lib/MailOnEventListener.php b/lib/MailOnEventListener.php
index 5cf12ad353df5997111bbd9866fd413aa5c43cbb..8bf2d0924450afc8959c0b70eeab4fc951a07064 100644
--- a/lib/MailOnEventListener.php
+++ b/lib/MailOnEventListener.php
@@ -53,11 +53,12 @@ class MailOnEventListener implements EventListener{
 	
 	/**
 	 * 
-	 * @param unknown $event
+	 * {@inheritDoc}
+	 * @see \jards\eventsapi\EventListener::handleEvent()
 	 */
-	public function handleEvent($event){
+	public function handleEvent($jsonevent, $apievent){
 		$config = parse_ini_file(__DIR__.'/../configs/mail.cnf');
-		$this->sendmail($config['TARGET'], 'New event received', json_encode($event));
+		$this->sendmail($config['TARGET'], 'New event received', json_encode($jsonevent));
 	}
 }
 
diff --git a/tests/EventManagementTest.php b/tests/EventManagementTest.php
index 38bd75272ebdc5626cacbbd1710b56b379679153..b71d5804cffea16f5c6ff265f4b1692e5ded6c43 100644
--- a/tests/EventManagementTest.php
+++ b/tests/EventManagementTest.php
@@ -53,7 +53,9 @@ class EventManagementTest extends TestCase{
 		
 		$url = file_get_contents(__DIR__.'/../configs/myurl.cnf');
 		
-		$eventManagement->sendEvent('test event', 'This is only a test', $url);
+		$success = $eventManagement->sendEvent('test event', 'This is only a test', $url);
+		
+		$this->assertTrue($success, "Event sending was not successful");
 		
 		$newEventIDs = $this->getExistingEventIDs();