Index: sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_current.inc.php
===================================================================
--- sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_current.inc.php	(revision 6945)
+++ sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_current.inc.php	(revision 6968)
@@ -148,5 +148,5 @@
 		
             
-            'calendar_participant' => array(
+        'calendar_participant' => array(
             'fd' => array(
                 'id' => array( 'type' => 'auto', 'nullable' => False),
@@ -183,7 +183,22 @@
             'uc' => array()
 		),
-		
-		
-            'calendar_signature_alarm' => array(
+
+        'calendar_historic' => array(
+            'fd' => array(
+                'id' => array( 'type' => 'auto', 'nullable' => False),
+                'object_id' => array('type' => 'int', 'precision' => '8','nullable' => True),
+                'user_uidnumber' => array( 'type' => 'int', 'precision' => '8', 'nullable' => False),
+                'dtstamp' => array( 'type' => 'bigint', 'precision' => '16', 'nullable' => False),
+                'attribute' => array('type' => 'varchar','precision' => '50','nullable' => True),
+                'before_value' => array( 'type' => 'varchar', 'precision' => '255', 'nullable' => True),              
+                'after_value' => array( 'type' => 'varchar', 'precision' => '255', 'nullable' => True)            
+            ),
+            'pk' => array('id'),
+            'fk' => array(),
+            'ix' => array(),
+            'uc' => array()
+        ),	
+		
+        'calendar_signature_alarm' => array(
             'fd' => array(
                 'id' => array( 'type' => 'auto', 'nullable' => False),
Index: sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_update.inc.php
===================================================================
--- sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_update.inc.php	(revision 6945)
+++ sandbox/2.4.2-expresso1/expressoCalendar/setup/tables_update.inc.php	(revision 6968)
@@ -137,4 +137,35 @@
         $oProc->query("CREATE TABLE calendar_task_to_activity_object(id serial not null, calendar_object_activity_id integer not null, calendar_object_task_id integer not null, owner integer not null);");
 
+        $oProc->CreateTable('calendar_historic', array(
+            'fd' => array(
+                'id' => array( 'type' => 'auto', 'nullable' => False),
+                'object_id' => array('type' => 'int', 'precision' => '8','nullable' => True),
+                'user_uidnumber' => array( 'type' => 'int', 'precision' => '8', 'nullable' => False),
+                'dtstamp' => array( 'type' => 'bigint', 'precision' => '16', 'nullable' => False),
+                'attribute' => array('type' => 'varchar','precision' => '50','nullable' => True),
+                'before_value' => array( 'type' => 'varchar', 'precision' => '255', 'nullable' => True),              
+                'after_value' => array( 'type' => 'varchar', 'precision' => '255', 'nullable' => True)            
+            ),
+            'pk' => array('id'),
+            'fk' => array(),
+            'ix' => array(),
+            'uc' => array()
+            )
+        );
+
+        $oProc->CreateTable('calendar_task_to_activity_object', array(
+            'fd' => array(
+                'id' => array( 'type' => 'auto', 'nullable' => False),
+                'calendar_object_activity_id' => array(  'type' => 'int', 'precision' => '8', 'nullable' => False),
+                'calendar_object_task_id' => array(  'type' => 'int', 'precision' => '8', 'nullable' => False),
+                'owner' => array(  'type' => 'int', 'precision' => '8', 'nullable' => False),
+            ),
+            'pk' => array('id'),
+            'fk' => array(),
+            'ix' => array(),
+            'uc' => array()
+            )
+        );
+
         $GLOBALS['setup_info']['expressoCalendar']['currentver'] = '1.008';
         return $GLOBALS['setup_info']['expressoCalendar']['currentver'];
Index: sandbox/2.4.2-expresso1/expressoCalendar/setup/setup.inc.php
===================================================================
--- sandbox/2.4.2-expresso1/expressoCalendar/setup/setup.inc.php	(revision 6945)
+++ sandbox/2.4.2-expresso1/expressoCalendar/setup/setup.inc.php	(revision 6968)
@@ -34,5 +34,6 @@
 	$setup_info['expressoCalendar']['tables'][]		=  'module_preference';
     $setup_info['expressoCalendar']['tables'][]     =  'calendar_repeat_ranges';
-	$setup_info['expressoCalendar']['tables'][]		=  'calendar_task_to_activity_object';
+    $setup_info['expressoCalendar']['tables'][]     =  'calendar_task_to_activity_object';
+	$setup_info['expressoCalendar']['tables'][]		=  'calendar_historic';
 
 	$setup_info['expressoCalendar']['enable']		= 1;
Index: sandbox/2.4.2-expresso1/prototype/config/calendarHistoric.ini
===================================================================
--- sandbox/2.4.2-expresso1/prototype/config/calendarHistoric.ini	(revision 6968)
+++ sandbox/2.4.2-expresso1/prototype/config/calendarHistoric.ini	(revision 6968)
@@ -0,0 +1,14 @@
+service = PostgreSQL
+PostgreSQL.concept = calendar_historic
+
+[after.find]
+deepnessFindHistoric = modules/calendar/interceptors/DBMapping.php
+
+[PostgreSQL.mapping]
+id = "id"
+schedulable = "object_id"
+user = "user_uidnumber"
+time = "dtstamp"
+attribute = "attribute"
+beforeValue = "before_value"
+afterValue = "after_value"
Index: sandbox/2.4.2-expresso1/prototype/config/participant.ini
===================================================================
--- sandbox/2.4.2-expresso1/prototype/config/participant.ini	(revision 6111)
+++ sandbox/2.4.2-expresso1/prototype/config/participant.ini	(revision 6968)
@@ -19,6 +19,16 @@
 deepnessReadParticipant = modules/calendar/interceptors/DBMapping.php
 
+[after.create]
+createParticipantHistoric = modules/calendar/interceptors/DBMapping.php
+
+[before.delete]
+prepareParticipantHistoric = modules/calendar/interceptors/DBMapping.php
+
+[after.delete]
+removeParticipantHistoric = modules/calendar/interceptors/DBMapping.php
+
 [after.commit]
 commitParticipant = modules/calendar/interceptors/Notifications.php
+
 
 [PostgreSQL.mapping]
Index: sandbox/2.4.2-expresso1/prototype/config/schedulableToAttachment.ini
===================================================================
--- sandbox/2.4.2-expresso1/prototype/config/schedulableToAttachment.ini	(revision 6369)
+++ sandbox/2.4.2-expresso1/prototype/config/schedulableToAttachment.ini	(revision 6968)
@@ -5,8 +5,12 @@
 schedulable = schedulable.attachments
 
+[after.create]
+createAttachmentHistoric = modules/calendar/interceptors/DBMapping.php
+
 [before.delete]
 decodeSchedulablettachment = modules/calendar/interceptors/DBMapping.php
 
 [after.delete]
+removeAttachmentHistoric = modules/calendar/interceptors/DBMapping.php
 deleteAttachmentDependences = modules/calendar/interceptors/DBMapping.php
 
Index: sandbox/2.4.2-expresso1/prototype/config/schedulable.ini
===================================================================
--- sandbox/2.4.2-expresso1/prototype/config/schedulable.ini	(revision 6945)
+++ sandbox/2.4.2-expresso1/prototype/config/schedulable.ini	(revision 6968)
@@ -15,5 +15,4 @@
 [after.create]
 createCalendarToSchedulable = modules/calendar/interceptors/DBMapping.php
-;createTasksToActivity = modules/calendar/interceptors/DBMapping.php
 
 [before.find]
@@ -31,4 +30,5 @@
 [after.update]
 putEvent = modules/calendar/interceptors/DBMapping.php
+createHistoric = modules/calendar/interceptors/DBMapping.php
 
 [after.read]
Index: sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php
===================================================================
--- sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php	(revision 6945)
+++ sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php	(revision 6968)
@@ -188,15 +188,4 @@
     public function findTask(&$uri, &$params, &$criteria, $original) {
 
-        ob_start();
-        print_r('$uri' . "\n");
-        print_r($uri);
-        print_r('$params' . "\n");
-        print_r($params);
-        print_r('$criteria' . "\n");
-        print_r($criteria);
-        print_r('$original' . "\n");
-        print_r($original);
-        $output = ob_get_clean();
-        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND);
 	if (isset($criteria['filterTasks']) && $criteria['filterTasks']) {
 
@@ -473,5 +462,5 @@
 
     	$event = Controller::read(array('concept' => 'schedulable', 'id' => $params['id']));
-    	
+    	            
     	if (isset($params['startTime'])) {
 
@@ -485,8 +474,8 @@
 
     	    if (!is_numeric($params['endTime'])) {
-    		$params['endTime'] = self::parseTimeDate($params['endTime'], $event['timezone']);
-
-    	    if ((isset($params['allDay']) && $params['allDay']) || ( !isset($params['allDay']) && $event['allDay']))
-    		$params['endTime'] = $params['endTime'] + 86400000;
+        		$params['endTime'] = self::parseTimeDate($params['endTime'], $event['timezone']);
+
+        	    if ((isset($params['allDay']) && $params['allDay']) || ( !isset($params['allDay']) && $event['allDay']))
+        		$params['endTime'] = $params['endTime'] + 86400000;
     	    }
     	    $params['rangeEnd'] = $params['endTime'];
@@ -496,4 +485,24 @@
         if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due']))
             $params['due'] = self::parseTimeDate($params['due'], $event['timezone']);
+
+
+        if($event['type'] == '2'){
+
+            $criteria['historic'] = $params;
+            $criteria['beforeValue'] = $event;
+
+            if(isset($params['startTime']) && $params['startTime'] == $event['startTime'])
+                unset($criteria['historic']['startTime']);
+
+            if(isset($params['endTime']) && $params['endTime'] == $event['endTime'])
+                unset($criteria['historic']['endTime']);
+
+            if(isset($params['due']) && $params['due'] == $event['due'])
+                unset($criteria['historic']['due']);
+
+            unset($criteria['historic']['rangeEnd']);
+            unset($criteria['historic']['rangeStart']);
+            unset($criteria['historic']['id']);            
+        }
     }
 
@@ -526,4 +535,73 @@
     }
 
+
+    static function prepareParticipantHistoric(&$uri, &$params, &$criteria, $original){
+       $participant = Controller::read(array('concept' => 'participant', 'id' => $uri['id']));
+       $schedulable = Controller::read(array('concept' => 'schedulable', 'id' => $participant['schedulable']));
+
+
+       if($schedulable['type'] == '2')
+            $criteria['historic']['participant']  = $participant;
+    } 
+
+    static function removeParticipantHistoric(&$uri, &$params, &$criteria, $original){
+        if(isset($criteria['historic'])){
+
+            $participant = $criteria['historic']['participant'];
+
+             Controller::create(array('concept' => 'calendarHistoric'), 
+                array('schedulable' => $participant['schedulable'], 
+                    'user' => Config::me('uidNumber'),
+                    'time' => time() . '000',
+                    'attribute' => 'participant',
+                    'beforeValue' => $participant['user'],
+                    'afterValue' => ''
+                    )
+                );
+
+        }
+
+    }
+
+    static function createParticipantHistoric(&$uri, &$params, &$criteria, $original){
+
+        if(!isset($criteria['event'])){
+            $event = Controller::read(array('concept' => 'schedulable', 'id' => $original['properties']['schedulable']));
+            $criteria['event'] = $event;
+        }else
+            $event = $criteria['event'];
+
+        if($event['type'] == '2'){
+             Controller::create(array('concept' => 'calendarHistoric'), 
+                array('schedulable' => $original['properties']['schedulable'], 
+                    'user' => Config::me('uidNumber'),
+                    'time' => time() . '000',
+                    'attribute' => 'participant',
+                    'beforeValue' => '',
+                    'afterValue' => $original['properties']['user']
+                    )
+                );
+        }
+    }
+
+    static function createHistoric(&$uri, &$result, &$criteria, $original) {
+
+        if(isset($criteria['historic']) && count($criteria['historic'])){
+            $time =  time() . '000';
+
+            foreach($criteria['historic'] as $k => $v){
+                Controller::create(array('concept' => 'calendarHistoric'), 
+                    array('schedulable' => $uri['id'], 
+                        'user' => Config::me('uidNumber'),
+                        'time' => $time,
+                        'attribute' => $k,
+                        'beforeValue' => $criteria['beforeValue'][$k],
+                        'afterValue' => $v
+                        )
+                    );
+            }
+        }    
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -542,16 +620,4 @@
     public function createTasksToActivity(&$uri, &$result, &$criteria, $original) {
 
-        ob_start();
-        print_r('$uri' . "\n");
-        print_r($uri);
-        print_r('$params' . "\n");
-        print_r($params);
-        print_r('$criteria' . "\n");
-        print_r($criteria);
-        print_r('$original' . "\n");
-        print_r($original);
-        $output = ob_get_clean();
-        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND);
-
         if(isset($original['properties']['taskToActivity']) && $original['properties']['taskToActivity']){
 
@@ -563,10 +629,41 @@
     }
 
-    public function createCreateSchedulableToAttachment(&$uri, &$params, &$criteria, $original) {
-	if (array_key_exists('attachments', $original['properties']))
-	    foreach ($original['properties']['attachments'] as $key => $value) {
-		if (isset($params['id']))
-		    Controller::create(array('concept' => 'schedulableToAttachment'), array('attachment' => $value['attachment'], 'schedulable' => $params['id']));
-	    }
+    public function removeAttachmentHistoric(&$uri, &$params, &$criteria, $original) {
+
+        if(isset($criteria['historic'])){
+            $attachment = $criteria['historic']['attachment'];
+
+            $attachment['attachment'] = Controller::read(array('concept' => 'attachment', 'id' => $attachment['attachment']), array('name'));
+            Controller::create(array('concept' => 'calendarHistoric'), 
+                    array('schedulable' => $attachment['schedulable'], 
+                        'user' => Config::me('uidNumber'),
+                        'time' => time() . '000',
+                        'attribute' => 'attachment',
+                        'beforeValue' => $attachment['attachment']['name'],
+                        'afterValue' => ''
+                        )
+                    );
+
+        }
+    
+    }
+
+    public function createAttachmentHistoric(&$uri, &$params, &$criteria, $original) {
+        $event = Controller::read(array('concept' => 'schedulable', 'id' => $original['properties']['schedulable']));
+
+        if($event['type'] == '2'){
+            $attachment = Controller::read(array('concept' => 'attachment', 'id' => $original['properties']['attachment']), array('name'));
+
+            Controller::create(array('concept' => 'calendarHistoric'), 
+                array('schedulable' => $original['properties']['schedulable'], 
+                    'user' => Config::me('uidNumber'),
+                    'time' => time() . '000',
+                    'attribute' => 'attachment',
+                    'beforeValue' => '',
+                    'afterValue' => $attachment['name']
+                    )
+                );
+
+        }
     }
 
@@ -618,5 +715,20 @@
     }
 
-
+    //TODO: Remover apos suporte a deepness na api 
+    public function deepnessFindHistoric(&$uri, &$result, &$criteria, $original) {
+        if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) {
+            foreach($result as &$v){
+                $v['user'] = Controller::read(array('concept' => 'user', 'id' => $v['user']));
+
+                if($v['attribute'] == 'participant'){
+                    if($v['beforeValue'] != '')
+                        $v['beforeValue'] = Controller::read(array('concept' => 'user', 'id' => $v['beforeValue']));
+
+                    if($v['afterValue'] != '')
+                        $v['afterValue'] = Controller::read(array('concept' => 'user', 'id' => $v['afterValue']));
+                }
+            }
+        }
+    }
 
     //TODO: Remover apos suporte a deepness na api 
@@ -659,4 +771,6 @@
             if($taskToActivity)
                 $result[$i]['taskToActivity'] = $taskToActivity;
+
+            $result[$i]['historic'] = Controller::find(array('concept' => 'calendarHistoric'), false, array('filter' => array('=', 'schedulable', $v['id']) , 'deepness' => 2));
 
         }
@@ -1012,9 +1126,16 @@
             $schedulableAttachment = Controller::read(array('concept' => 'schedulableToAttachment'), false, array('filter' => array( '=', 'attachment' , $original['URI']['id'] )));
             $uri['id'] = $schedulableAttachment[0]['id'];
+
+            $params = $schedulableAttachment[0];
+
+            $event = Controller::read(array('concept' => 'schedulable', 'id' => $params['schedulable']));
+            if($event['type'] == '2')
+                $criteria['historic']['attachment'] = $schedulableAttachment[0];
+
         }
     }
 
     public function deleteAttachmentDependences(&$uri, &$params, &$criteria, $original) {
-        Controller::delete(array('concept' => 'attachment', 'id' => $original['URI']['id']));
+        Controller::delete(array('concept' => 'attachment', 'id' => (isset($params['attachment']) ? $params['attachment'] : $original['URI']['id'])));
     }
     
@@ -1192,27 +1313,27 @@
 
     public function davcalCreateCollection(&$uri, &$params, &$criteria, $original) {
-	if (Config::module('useCaldav', 'expressoCalendar')) {
-	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
-	    DAViCalAdapter::mkcalendar($params['location'], $params['name'], isset($params['description']) ? $params['description'] : '' );
-	}
+    	if (Config::module('useCaldav', 'expressoCalendar')) {
+    	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
+    	    DAViCalAdapter::mkcalendar($params['location'], $params['name'], isset($params['description']) ? $params['description'] : '' );
+	   }
     }
 
     public function davcalDeleteCollection(&$uri, &$params, &$criteria, $original) {
-	if (Config::module('useCaldav', 'expressoCalendar') && Config::module('onRemoveCascadeCalDav')) {
-	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
-	    $calendar = Controller::read($uri);
-	    DAViCalAdapter::rmCalendar($calendar['location']);
-	}
+    	if (Config::module('useCaldav', 'expressoCalendar') && Config::module('onRemoveCascadeCalDav')) {
+    	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
+    	    $calendar = Controller::read($uri);
+    	    DAViCalAdapter::rmCalendar($calendar['location']);
+    	}
     }
 
     public function davcalUpdateCollection(&$uri, &$params, &$criteria, $original) {
-	if (Config::module('useCaldav', 'expressoCalendar')) {
-	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
-	    if (isset($params['location'])) {
-		$calendar = Controller::read($uri);
-		if ($calendar['location'] !== $params['location'])
-		    DAViCalAdapter::mvcalendar($calendar['location'], $params['location']);
-	    }
-	}
+    	if (Config::module('useCaldav', 'expressoCalendar')) {
+    	    require_once ROOTPATH . '/modules/calendar/interceptors/DAViCalAdapter.php';
+    	    if (isset($params['location'])) {
+    		$calendar = Controller::read($uri);
+    		if ($calendar['location'] !== $params['location'])
+    		    DAViCalAdapter::mvcalendar($calendar['location'], $params['location']);
+    	    }
+    	}
     }
 
Index: sandbox/2.4.2-expresso1/prototype/modules/calendar/css/style.css
===================================================================
--- sandbox/2.4.2-expresso1/prototype/modules/calendar/css/style.css	(revision 6961)
+++ sandbox/2.4.2-expresso1/prototype/modules/calendar/css/style.css	(revision 6968)
@@ -575,19 +575,32 @@
 .div-addtask fieldset#calendar_addtask_details5.tab-level2{margin: 0}
 
-.div-addtask  #calendar_addtask_details8 .parent {width: 715px; min-height: 208px; float: left;}
-.div-addtask  #calendar_addtask_details8 .parent .child-top {width: 745px; height: 30px; background: #E8F4FD; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC;}
+.div-addtask  #calendar_addtask_details8 .parent {width: 746px; min-height: 208px; float: left;}
+/*.div-addtask  #calendar_addtask_details8 .parent .child-top {width: 745px; height: 20px; background: #E8F4FD; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC;}*/
+.div-addtask  #calendar_addtask_details8 .parent .child-top {width: 745px; height: 25px; background: #E8F4FD; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC; border-top: 1px solid #CCC;}
 .div-addtask  #calendar_addtask_details8 .parent .child-bottom {width: 745px; height: 208px; overflow: auto;  float: left; border-left: 1px solid #CCC; border-right: 1px solid #CCC; border-bottom: 1px solid #CCC;}
-.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each { height: 30px; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each { height: 20px; }
 .div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each:hover { background: #FFF2F2; cursor: pointer;}
 
-.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .date-hour { width: 30%; float: left; height: 30px}
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .date-hour { width: 140px; float: left; height: 20px}
 .div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .date-hour span { margin: 8px; float: left; }
-.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .organization{ width: 69%; float: left;  height: 30px; border-left: 1px solid #CCC; }
-.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .organization span{ margin: 8px; float: left; }
-
-.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour { width: 29%; float: left; background: #E8F4FD; height: 30px; }
-.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour span{ margin: 8px; float: left; font-weight: bold; color: #2E6E9E; }
-.div-addtask  #calendar_addtask_details8 .parent .child-top .organization { width: 70%; float: left; background: #E8F4FD; height: 30px; border-left: 1px solid #CCC; font-weight: bold; color: #2E6E9E; }
-.div-addtask  #calendar_addtask_details8 .parent .child-top .organization span{margin: 8px; float: left; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .user{ width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .user span{ margin: 8px; float: left; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .attribute{ width: 130px; float: left;  height: 20px; border-left: 1px solid #CCC; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .attribute span{ margin: 8px; float: left; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .beforeValue{ width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .beforeValue span{ margin: 8px; float: left; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .afterValue{ width: 150px; float: left;  height: 20px; border-left: 1px solid #CCC; }
+.div-addtask  #calendar_addtask_details8 .parent .child-bottom .child-bottom-each .afterValue span{ margin: 8px; float: left; }
+
+.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour { width: 140px; float: left; background: #E8F4FD; height: 20px; text-align: center; }
+.div-addtask  #calendar_addtask_details8 .parent .child-top .date-hour span{ margin: 6px 0; position: absolute; font-weight: bold; color: #2E6E9E; }
+.div-addtask  #calendar_addtask_details8 .parent .child-top .user { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E; text-align: center;}
+.div-addtask  #calendar_addtask_details8 .parent .child-top .user span{margin: 6px 0; position: absolute; }
+.div-addtask  #calendar_addtask_details8 .parent .child-top .attribute { width: 130px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;}
+.div-addtask  #calendar_addtask_details8 .parent .child-top .attribute span{margin: 6px 0; position: absolute; }
+.div-addtask  #calendar_addtask_details8 .parent .child-top .beforeValue { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;}
+.div-addtask  #calendar_addtask_details8 .parent .child-top .beforeValue span{margin: 6px 0; position: absolute; }
+.div-addtask  #calendar_addtask_details8 .parent .child-top .afterValue { width: 150px; float: left; background: #E8F4FD; height: 20px; font-weight: bold; color: #2E6E9E;  text-align: center;}
+.div-addtask  #calendar_addtask_details8 .parent .child-top .afterValue span{margin: 6px 0; position: absolute; }
 
 /*Atividades*/
Index: sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js
===================================================================
--- sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js	(revision 6955)
+++ sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js	(revision 6968)
@@ -727,5 +727,5 @@
         dueTime: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.due)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat),
         allDay: !!parseInt( objEvent.allDay ),
-	    historic: [],
+	    historic: !!objEvent.historic ? decodeHistotic(objEvent) : [] ,
         attachments: $.map(objEvent.attachments || [], function( attachment, i ){
             var attach = DataLayer.get('schedulableToAttachment', attachment, false);
@@ -802,4 +802,81 @@
     }
 });
+
+function decodeHistotic ( evt ) {
+    var historic = evt.historic;
+    var decoded = [];
+    var attributeDecoded = {
+        'startTime': 'Data de inicio',
+        'endTime' : 'Data de fim',
+        'summary' : 'Título',
+        'description': 'Descrição',
+        'status': 'Status',
+        'percentage': 'Porcentagem',
+        'priority': 'Priorudade',
+        'due' : 'Previsão de término'
+    }
+
+    var decodeDate = function(time){
+        return new Date( parseInt( time) ).setTimezoneOffset( Timezone.timezone( evt.timezone ) ).toString( User.preferences.dateFormat+' - '+User.preferences.hourFormat );
+    };
+
+    var decodeItem = function(historic){
+        switch(historic.attribute){
+            case 'startTime':
+            case 'endTime' :
+            case 'due':
+                return {
+                    user : historic.user,
+                    attribute : attributeDecoded[historic.attribute],
+                    beforeValue : decodeDate(historic.beforeValue),
+                    afterValue : decodeDate(historic.afterValue),
+                    time: decodeDate(historic.time)
+                }
+            break;
+            case 'participant':
+                return{
+                    user : historic.user,
+                    attribute : historic.beforeValue == '' ? ('Novo participante') : ('Rem. participante'),
+                    beforeValue : historic.beforeValue == '' ? '' : historic.beforeValue.mail,
+                    afterValue : historic.afterValue == '' ? '' : historic.afterValue.mail,
+                    time: decodeDate(historic.time)
+                }
+            break;
+            case 'attachment':
+                return{
+                    user : historic.user,
+                    attribute : historic.beforeValue == '' ? ('Novo anexo') : ('Rem. anexo'),
+                    beforeValue : historic.beforeValue,
+                    afterValue : historic.afterValue,
+                    time: decodeDate(historic.time)
+                }
+            case 'percentage':
+                    return{
+                    user : historic.user,
+                    attribute :attributeDecoded[historic.attribute],
+                    beforeValue : historic.beforeValue+' %',
+                    afterValue : historic.afterValue+' %',
+                    time: decodeDate(historic.time)
+                }
+            break;
+            default:
+                return {
+                    user : historic.user,
+                    attribute : attributeDecoded[historic.attribute],
+                    beforeValue : historic.beforeValue,
+                    afterValue : historic.afterValue,
+                    time: decodeDate(historic.time)
+                }
+            break;
+
+        }
+    }
+
+    for(var i = 0; i < historic.length; i++)
+        decoded.push(decodeItem(historic[i]));
+
+    return decoded;
+
+}
 
 DataLayer.codec( "schedulable", "taskSearch", {
Index: sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_add.ejs
===================================================================
--- sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_add.ejs	(revision 6965)
+++ sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_add.ejs	(revision 6968)
@@ -169,18 +169,21 @@
 			
 			<div class="child-top">
-				<div class="date-hour"><span>Data -Hora</span></div>
-				<div class="organization"><span>Participante/Organizador</span></div>
+				<div class="date-hour"><span>Data-Hora</span></div>
+                <div class="user"><span>Participante</span></div>
+                <div class="attribute"><span>Alterou</span></div>
+                <div class="beforeValue"><span>De</span></div>
+				<div class="afterValue"><span>Para</span></div>
 			</div>
 
 			<div class="child-bottom">
-			
-		
-			    <% 
-				if(data.task.historic){
+			    <% if(data.task.historic){
 					for(var i=0; i< data.task.historic.length; i++){ %>
-				<div class="child-bottom-each">
-				    <div class="date-hour"><span><%= data.task.historic[i].date %></span></div>
-				    <div class="organization"><span><%= data.task.historic[i].description %></span></div>
-				</div>
+        				<div class="child-bottom-each">
+        				    <div class="date-hour"><span><%= data.task.historic[i].time %></span></div>
+                            <div class="user"><span><%= data.task.historic[i].user.name %></span></div>
+                            <div class="attribute"><span><%= data.task.historic[i].attribute %></span></div>
+                            <div class="beforeValue"><span><%= data.task.historic[i].beforeValue %></span></div>
+        				    <div class="afterValue"><span><%= data.task.historic[i].afterValue %></span></div>
+        				</div>
 			    <% 	}	
 				}				
