diff --git a/src/openmap/com/bbn/openmap/layer/event/CSVEventImporter.java b/src/openmap/com/bbn/openmap/layer/event/CSVEventImporter.java
index a886150..e50234a 100644
--- a/src/openmap/com/bbn/openmap/layer/event/CSVEventImporter.java
+++ b/src/openmap/com/bbn/openmap/layer/event/CSVEventImporter.java
@@ -65,23 +65,39 @@ import com.bbn.openmap.util.PropUtils;
  *    eventLayer.class=com.bbn.openmap.layer.time.EventLayer
  *    eventLayer.importer=com.bbn.openmap.layer.time.CSVEventImporter
  *    eventLayer.prettyName=Test Event
- *    eventLayer.locationFile=org-list.csv
+ *    eventLayer.locationFile=event_location.csv
  *    eventLayer.locationFileHasHeader=true
  *    eventLayer.nameIndex=0
- *    eventLayer.iconIndex=5
- *    eventLayer.activityFile=org-activities.csv
+ *    # eventLayer.iconIndex=1
+ *    eventLayer.activityFile=event_activity.csv
  *    eventLayer.activityFileHasHeader=true
- *    eventLayer.activityNameIndex=1
- *    eventLayer.latIndex=9
- *    eventLayer.lonIndex=10
- *    eventLayer.timeFormat=d-MMM-yyyy HH:mm
- *    eventLayer.timeIndex=7
+ *    eventLayer.activityNameIndex=0
+ *    # If the description is left out, it defaults to "{name} moving"
+ *    eventLayer.activityDescriptionIndex=1
+ *    eventLayer.activityVisibleIndex=5
+ *    eventLayer.latIndex=2
+ *    eventLayer.lonIndex=3
+ *    eventLayer.timeFormat=k:m:s
+ *    eventLayer.timeIndex=4
  *    # If no icon defined, used for location markers edge.
  *    eventLayer.lineColor=aaaaaa33
  *    # If no icon defined, used for location markers fill.
  *    eventLayer.fillColor=aaaaaa33
  * </pre>
  * 
+ * Which uses these two CSV files, as an example. event_location.csv:
+ * <pre>
+ * name,icon
+ * CK,
+ * </pre>
+ * and event_activity.csv:
+ * <pre>
+ * name,desc,lat,lon,time,visible
+ * CK,Badger,1.0,1.0,12:00:00,1
+ * CK,,2.0,1.0,12:00:05,0
+ * CK,Badger2,3.0,-1.0,12:00:10,1
+ * </pre>
+ * 
  * @author dietrick
  */
 public class CSVEventImporter extends OMComponent implements EventImporter {
@@ -101,6 +117,10 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
     public final static String ActivityFileProperty = "activityFile";
     /** activityNameIndex */
     public final static String ActivityNameIndexProperty = "activityNameIndex";
+    /** activityVisibleIndex */
+    public final static String ActivityVisibleIndexProperty = "activityVisibleIndex";
+    /** activityDescriptionIndex */
+    public final static String ActivityDescriptionIndexProperty = "activityDescriptionIndex";
     /** activityFileHasHeader */
     public final static String ActivityHeaderProperty = "activityFileHasHeader";
     /** latIndex */
@@ -131,6 +151,8 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
     protected String activityFile;
     protected boolean activityHeader = true;
     protected int activityNameIndex;
+    protected int activityDescriptionIndex;
+    protected int activityVisibleIndex;
     protected int latIndex;
     protected int lonIndex;
     protected int timeIndex;
@@ -258,6 +280,8 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
                 Iterator<Vector<Object>> records = activities.iterator();
                 while (records.hasNext()) {
                     String name = null;
+                    String desc = null;
+                    boolean visible = true;
                     float lat;
                     float lon;
 
@@ -269,7 +293,7 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
                     name = record.elementAt(activityNameIndex)
                             .toString()
                             .intern();
-
+                    
                     try {
                         lat = ((Double) record.elementAt(latIndex)).floatValue();
                         lon = ((Double) record.elementAt(lonIndex)).floatValue();
@@ -290,9 +314,28 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
                                 LatLonPoint location = new LatLonPoint.Double(lat, lon);
                                 TemporalPoint ts = new TemporalPoint(location, time);
                                 point.addTimeStamp(ts);
+                                
+                                Object descriptionCSV = null;
+                                if(activityDescriptionIndex>-1) {
+                                     descriptionCSV = record.elementAt(activityDescriptionIndex);
+                                }
+                                
+                                if(null != descriptionCSV && descriptionCSV.toString().length()>0) {
+                                    desc = descriptionCSV.toString()
+                                            .intern();
+                                } else {
+                                    desc = name + " moving";
+                                }
+                                
+                                if(activityVisibleIndex>-1) {
+                                    Object visibleCSV = record.elementAt(activityVisibleIndex);
+                                    visible = 0<(Double.valueOf(visibleCSV.toString()));
+                                } else {
+                                    visible = true;
+                                }
+                                point.setVisible(visible);
 
-                                OMEvent event = new OMEvent(ts, name
-                                        + " moving", time, location);
+                                OMEvent event = new OMEvent(ts, desc, time, location);
 
                                 // IMPORTANT
                                 callback.events.add(event);
@@ -382,6 +425,10 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
                 + NameIndexProperty, -1);
         activityNameIndex = PropUtils.intFromProperties(properties, prefix
                 + ActivityNameIndexProperty, -1);
+        activityDescriptionIndex = PropUtils.intFromProperties(properties, prefix
+                + ActivityDescriptionIndexProperty, -1);
+        activityVisibleIndex = PropUtils.intFromProperties(properties, prefix
+                + ActivityVisibleIndexProperty, -1);
         activityFile = properties.getProperty(prefix + ActivityFileProperty);
         latIndex = PropUtils.intFromProperties(properties, prefix
                 + LatIndexProperty, -1);
@@ -443,6 +490,12 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
         props.put(prefix + ActivityFileProperty, PropUtils.unnull(activityFile));
         props.put(prefix + ActivityHeaderProperty,
                 new Boolean(activityHeader).toString());
+        props.put(prefix + ActivityDescriptionIndexProperty,
+                (activityDescriptionIndex != -1 ? Integer.toString(activityDescriptionIndex)
+                        : ""));
+        props.put(prefix + ActivityVisibleIndexProperty,
+                (activityVisibleIndex != -1 ? Integer.toString(activityVisibleIndex)
+                        : ""));
         props.put(prefix + ActivityNameIndexProperty,
                 (activityNameIndex != -1 ? Integer.toString(activityNameIndex)
                         : ""));
@@ -513,6 +566,12 @@ public class CSVEventImporter extends OMComponent implements EventImporter {
         list.put(ActivityNameIndexProperty,
                 "The column index, in the activity file, of the location label text.");
 
+        list.put(ActivityNameIndexProperty,
+                "The column index, in the activity file, of the event description text.");
+
+        list.put(ActivityVisibleIndexProperty,
+                "The column index, in the activity file, of whether the event should be visible.");
+
         list.put(LatIndexProperty,
                 "The column index, in the activity file, of the latitudes.");
         list.put(LonIndexProperty,

