         get { return self[kPinKey] as? String ?? nil }
     }
     
-    var startDateTime : String? {
-        set { setValue(startDateTime, forKey: kStartDateTimeKey) }
-        get { return self[kStartDateTimeKey] as? String ?? nil }
+    var startDateTime : NSDate! {
+        set {
+            let encodedDate = Event.sDateFormatter.stringFromDate(startDateTime)
+            setValue(encodedDate, forKey: kStartDateTimeKey)
+        }
+        get {
+            if let encodedDate = self[kStartDateTimeKey] as? String {
+                return Event.sDateFormatter.dateFromString(encodedDate)
+            } else {
+                return nil
+            }
+        }
     }
     
-    var endDateTime : String? {
-        set { setValue(endDateTime, forKey: kEndDateTimeKey) }
-        get { return self[kEndDateTimeKey] as? String ?? nil }
+    var endDateTime : NSDate! {
+        set {
+            let encodedDate = Event.sDateFormatter.stringFromDate(endDateTime)
+            setValue(encodedDate, forKey: kEndDateTimeKey)
+        }
+        get {
+            if let encodedDate = self[kEndDateTimeKey] as? String {
+                return Event.sDateFormatter.dateFromString(encodedDate)
+            } else {
+                return nil
+            }
+        }
     }
     
     var latitude : Double? {

        get { return self[kAlbumsKey] as? [Album] ?? [] }
    }
    
    
    
}
private let kGuestsKey = "guests"
private let kAlbumsKey = "albums"

class Event : BackendObject {
    static let sDateFormatter = NSDateFormatter()

    override init() {
        super.init(className: kClassName)
        
        // TODO - support more than one album
        let album = Album()
        album.saveEventually(nil)
