Index: /trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/EventTest.java
===================================================================
--- /trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/EventTest.java	(revision 995)
+++ /trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/EventTest.java	(revision 996)
@@ -313,4 +313,57 @@
     }
 
+    @Test
+    public void testSetParameter_1() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        assertNull(fixture.getParameter("key"));
+    }
+
+    @Test
+    public void testSetParameter_2() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.setParameter("key", "value");
+        assertEquals("value", fixture.getParameter("key"));
+    }
+
+    @Test
+    public void testSetParameter_3() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.setParameter("key", "value");
+        fixture.setParameter("key", null);
+        assertNull(fixture.getParameter("key"));
+    }
+
+    @Test
+    public void testSetParameter_4() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.setParameter("key", "value");
+        assertNull(fixture.getParameter("key2"));
+    }
+
+    @Test(expected = java.lang.IllegalArgumentException.class)
+    public void testSetParameter_5() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.setParameter(null, null);
+    }
+
+    @Test(expected = java.lang.IllegalArgumentException.class)
+    public void testGetParameter_1() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.getParameter(null);
+    }
+
+    @Test
+    public void testGetTimestamp_1() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        assertTrue(fixture.getTimestamp() < 0);
+    }
+
+    @Test
+    public void testSetTimestamp_1() throws Exception {
+        Event fixture = new Event(mock(IEventType.class));
+        fixture.setTimestamp(1234);
+        assertEquals(1234, fixture.getTimestamp());
+    }
+
     public static void main(String[] args) {
         new org.junit.runner.JUnitCore().run(EventTest.class);
Index: /trunk/autoquest-core-events/src/main/java/de/ugoe/cs/autoquest/eventcore/Event.java
===================================================================
--- /trunk/autoquest-core-events/src/main/java/de/ugoe/cs/autoquest/eventcore/Event.java	(revision 995)
+++ /trunk/autoquest-core-events/src/main/java/de/ugoe/cs/autoquest/eventcore/Event.java	(revision 996)
@@ -24,4 +24,5 @@
  * <p>
  * Base class for all events. An event is described by its {@link #type} and its {@link #target}.
+ * An event may be provided with a timestamp and further parameters.
  * </p>
  * 
@@ -62,7 +63,16 @@
 
     /**
-     * </p> Target of the event.
+     * <p>
+     * Target of the event.
+     * </p>
      */
     private IEventTarget target = null;
+    
+    /**
+     * <p>
+     * Timestamp of when the event took place.
+     * </p>
+     */
+    private long timestamp = Long.MIN_VALUE;
     
     /**
@@ -114,5 +124,6 @@
     /**
      * <p>
-     * Two events are equal, if their {@link #type} and {@link #target} are equal.
+     * Two events are equal, if their {@link #type} and {@link #target} are equal. The timestamp
+     * and other parameters are ignored.
      * </p>
      * <p>
@@ -309,4 +320,29 @@
     /**
      * <p>
+     * Sets the timestamp of the event, i.e. when the event occurred. A timestamp for events is
+     * optional. Therefore it is also ignored by the {@link #equals(Object)}-method. A timestamp
+     * with a value smaller 0 means, that now timestamp for the event exists.
+     * </p>
+     * 
+     * @param timestamp the new value for the timestamp
+     */
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    /**
+     * <p>
+     * Returns the timestamp of the event or a value lower than 0 if no timestamp for the event
+     * exists.
+     * </p>
+     * 
+     * @return the timestamp of the event or a value lower than 0 if no timestamp exists
+     */
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    /**
+     * <p>
      * Returns a the list of replay events.
      * </p>
Index: /trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/HTMLLogParser.java
===================================================================
--- /trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/HTMLLogParser.java	(revision 995)
+++ /trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/HTMLLogParser.java	(revision 996)
@@ -356,6 +356,7 @@
         Event event = new Event(interaction, guiElement);
         event.setParameter("clientId", clientId);
-        event.setParameter("timestamp", Long.toString(timestamp));
         event.setParameter("agent", agent);
+        
+        event.setTimestamp(timestamp);
         
         return event;
