diff --git a/lib/EventManagement.php b/lib/EventManagement.php
index e09d26fcf1c279e66166ec1558caa90f2c583cf2..431ef763abab750c9deda71a2860a6545a2c60af 100644
--- a/lib/EventManagement.php
+++ b/lib/EventManagement.php
@@ -178,6 +178,27 @@ class EventManagement{
 	 */
 	public function sendEvent($name, $description, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null){
 		
+		$event = new Event();
+		$event->setName($name);
+		$event->setDescription($description);
+		$event->setDate(new \DateTime());
+		
+		return $this->sendEventObject($event, $baseURL, $certFile, $certKey, $certPassphrase);
+	}
+	
+	/**
+	 * Send an event according to swagger API model.
+	 * Prepare any event you like, then send it with this function.
+	 * 
+	 * @param Event $eventObject the event object you would like to send
+	 * @param string $baseURL the root URL of the event receiver REST API
+	 * @param string $certFile path to certificate file to use or null to call URL without certificate
+	 * @param string $certKey path to certificate key file, null to avoid usage of key
+	 * @param string $certPassphrase path to passphrase file for key file, null for no passphrase
+	 * 
+	 * @return boolean true on success, false on error
+	 */
+	public function sendEventObject($eventObject, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null){
 		date_default_timezone_set ( 'Europe/Amsterdam' );
 		$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
 		$apiClient->getConfig ()->setHost ( $baseURL );
@@ -194,13 +215,8 @@ class EventManagement{
 		
 		$eventsApi = new EventsApi($apiClient);
 		
-		$event = new Event();
-		$event->setName($name);
-		$event->setDescription($description);
-		$event->setDate(new \DateTime());
-		
 		try{
-			$eventsApi->eventsPost($event);
+			$eventsApi->eventsPost($eventObject);
 		}
 		catch(\jards\eventsapiclient\Swagger\Client\ApiException $e){
 			return false;
diff --git a/tests/EventManagementTest.php b/tests/EventManagementTest.php
index b71d5804cffea16f5c6ff265f4b1692e5ded6c43..23f0ccea707d290ce42be96efe2bacdecebe7c17 100644
--- a/tests/EventManagementTest.php
+++ b/tests/EventManagementTest.php
@@ -4,6 +4,7 @@ namespace jards\eventsapi\tests;
 
 use PHPUnit\Framework\TestCase;
 use jards\eventsapi\EventManagement;
+use jards\eventsapiclient\Swagger\Client\Model\Event;
 
 class EventManagementTest extends TestCase{
 
@@ -54,13 +55,26 @@ class EventManagementTest extends TestCase{
 		$url = file_get_contents(__DIR__.'/../configs/myurl.cnf');
 		
 		$success = $eventManagement->sendEvent('test event', 'This is only a test', $url);
-		
 		$this->assertTrue($success, "Event sending was not successful");
 		
 		$newEventIDs = $this->getExistingEventIDs();
-		
 		$this->assertNotEquals(join('|', $oldEventIDs), join('|', $newEventIDs), "No event seems to be sent");
 		
+		//Send event directly
+		$event = new Event();
+		$event->setName('My event');
+		$event->setDescription('Good event for testing');
+		$event->setNewState('none');
+		$event->setDate(new \DateTime());
+		
+		$success = $eventManagement->sendEventObject($event, $url);
+		$this->assertTrue($success, "Event sending was not successful");
+		
+		$newEventIDs2 = $this->getExistingEventIDs();
+		$this->assertNotEquals(join('|', $newEventIDs), join('|', $newEventIDs2), "No event seems to be sent when sending event object");
+		
+		$newEventIDs = $newEventIDs2;
+		
 		foreach($newEventIDs as $newID){
 			if(! in_array($newID, $oldEventIDs)){
 				$toDelete = __DIR__.'/../data/'.$newID.'.obj';