diff --git a/orgmode-parse.cabal b/orgmode-parse.cabal
--- a/orgmode-parse.cabal
+++ b/orgmode-parse.cabal
@@ -1,5 +1,5 @@
 Name:                   orgmode-parse
-Version:                0.2.2
+Version:                0.2.3
 Author:                 Parnell Springmeyer <parnell@digitalmentat.com>
 Maintainer:             Parnell Springmeyer <parnell@digitalmentat.com>
 License:                BSD3
diff --git a/src/Data/OrgMode/Parse/Attoparsec/Section.hs b/src/Data/OrgMode/Parse/Attoparsec/Section.hs
--- a/src/Data/OrgMode/Parse/Attoparsec/Section.hs
+++ b/src/Data/OrgMode/Parse/Attoparsec/Section.hs
@@ -13,16 +13,14 @@
 
 module Data.OrgMode.Parse.Attoparsec.Section where
 
-import           Control.Applicative                  ()
-import           Data.Attoparsec.Text
+import           Data.Attoparsec.Text                 (many', option, skipSpace)
 import           Data.Attoparsec.Types                as Attoparsec
 import           Data.Monoid                          ()
-import           Data.Text                            (Text)
-import qualified Data.Text                            as Text
-
 import           Data.OrgMode.Parse.Attoparsec.Drawer
 import           Data.OrgMode.Parse.Attoparsec.Time
 import qualified Data.OrgMode.Parse.Attoparsec.Util   as Util
+import           Data.Text                            (Text)
+import qualified Data.Text                            as Text
 
 import           Data.OrgMode.Types
 
diff --git a/src/Data/OrgMode/Parse/Attoparsec/Time.hs b/src/Data/OrgMode/Parse/Attoparsec/Time.hs
--- a/src/Data/OrgMode/Parse/Attoparsec/Time.hs
+++ b/src/Data/OrgMode/Parse/Attoparsec/Time.hs
@@ -22,23 +22,25 @@
 )
 where
 
-import           Control.Applicative        
-import qualified Data.Attoparsec.ByteString as Attoparsec.ByteString
-import           Data.Attoparsec.Combinator as Attoparsec
+import           Control.Applicative
+import qualified Data.Attoparsec.ByteString         as Attoparsec.ByteString
+import           Data.Attoparsec.Combinator         as Attoparsec
 import           Data.Attoparsec.Text
-import           Data.Attoparsec.Types      as Attoparsec (Parser)
-import qualified Data.ByteString.Char8      as BS
-import           Data.Functor               (($>))
-import           Data.HashMap.Strict        (HashMap, fromList)
-import           Data.Maybe                 (listToMaybe)
-import           Data.Monoid                ()
-import           Data.Text                  (Text)
-import qualified Data.Text                  as Text
-import           Data.Thyme.Format          (buildTime, timeParser)
-import           Data.Thyme.LocalTime       (Hours, Minutes)
-import           System.Locale              (defaultTimeLocale)
-import           Data.Semigroup             ((<>))
+import           Data.Attoparsec.Types              as Attoparsec (Parser)
+import qualified Data.ByteString.Char8              as BS
+import           Data.Functor                       (($>))
+import           Data.HashMap.Strict                (HashMap, fromList)
+import           Data.Maybe                         (listToMaybe)
+import           Data.Monoid                        ()
+import qualified Data.OrgMode.Parse.Attoparsec.Util as Util
 import           Data.OrgMode.Types
+import           Data.Semigroup                     ((<>))
+import           Data.Text                          (Text)
+import qualified Data.Text                          as Text
+import           Data.Thyme.Format                  (buildTime, timeParser)
+import           Data.Thyme.LocalTime               (Hours, Minutes)
+import           Prelude                            hiding (repeat)
+import           System.Locale                      (defaultTimeLocale)
 
 -- | Parse a planning line.
 --
@@ -48,7 +50,7 @@
 --
 -- > DEADLINE: <2015-05-10 17:00> CLOSED: <2015-04-1612:00>
 parsePlannings :: Attoparsec.Parser Text (HashMap PlanningKeyword Timestamp)
-parsePlannings = fromList <$> many' (skipSpace *> planning <* skipSpace)
+parsePlannings = fromList <$> many' (skipSpace *> planning <* Util.skipOnlySpace)
   where
     planning =  (,) <$> pType <* char ':' <*> (skipSpace *> parseTimestamp)
     pType    = choice [string "SCHEDULED" $>  SCHEDULED
@@ -65,9 +67,8 @@
 parseClock :: Attoparsec.Parser Text Clock
 parseClock = Clock <$> ((,) <$> (skipSpace *> string "CLOCK: " *> ts) <*> dur)
   where
-    ts  = option Nothing (Just <$> parseTimestamp)
-    dur = option Nothing (Just <$> (string " => "
-                                    *> skipSpace *> parseHM))
+    ts  = optional parseTimestamp
+    dur = optional (string " => " *> skipSpace *> parseHM)
 
 -- | Parse a timestamp.
 --
@@ -109,7 +110,7 @@
 
   where
     optionalBracketedDateTime =
-      option Nothing (Just <$> (string "--" *> parseBracketedDateTime))
+      optional (string "--" *> parseBracketedDateTime)
 
 
 -- | Parse a single time part.
@@ -136,7 +137,7 @@
   closingBracket <- char '>' <|> char ']'
   finally brkDateTime openingBracket closingBracket
   where
-    optionalParse p  = option Nothing (Just <$> p) <* skipSpace
+    optionalParse p  = optional p <* skipSpace
     maybeListParse p = listToMaybe <$> many' p  <* skipSpace
     activeBracket ((=='<') -> active) =
       if active then Active else Inactive
diff --git a/test/Document.hs b/test/Document.hs
--- a/test/Document.hs
+++ b/test/Document.hs
@@ -29,6 +29,12 @@
   , testCase "Parse Headline with Planning" $
       testDocS samplePText samplePParse
 
+  , testCase "Parse Headline with properties" $
+      testDocS sampleP2Text sampleP2Parse
+
+  , testCase "Parse Headline with scheduled" $
+      testDocS sampleP3Text sampleP3Parse
+
   , testCase "Parse Headline no \n" $
       testDocS "* T" (Document "" [emptyHeadline {title="T"}])
 
@@ -90,6 +96,36 @@
     plns = Plns con
 
     Right con = parseOnly parsePlannings "SCHEDULED: <2015-06-12 Fri>"
+
+sampleP2Text :: Text
+sampleP2Text =
+    Text.concat ["* Test3_1\n"
+                ,"  :PROPERTIES:\n"
+                ,"  :CATEGORY: testCategory\n"
+                ,"  :END:"
+                ]
+
+sampleP2Parse :: Document
+sampleP2Parse =
+    Document "" [ emptyHeadline {
+                      title = "Test3_1"
+                    , section = emptySection {
+                          sectionProperties = Properties (fromList [("CATEGORY", "testCategory")])}}]
+
+sampleP3Text :: Text
+sampleP3Text =
+    Text.concat ["* Test4_1\n"
+                ,"  SCHEDULED: <2004-02-29 Sun 10:20>"
+                ]
+
+sampleP3Parse :: Document
+sampleP3Parse =
+    Document "" [ emptyHeadline {
+                      title = "Test4_1"
+                    , section = emptySection {
+                          sectionPlannings = Plns con}}]
+  where
+    Right con = parseOnly parsePlannings "SCHEDULED: <2004-02-29 Sun 10:20>"
 
 emptyHeadline :: Headline
 emptyHeadline =
