-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | iCalendar format parser and org-mode converter. -- -- Please see README.md @package ical @version 0.0.0 -- | All iCalendar types. module ICal.Types -- | Tree for representing iCal file. data Object Property :: !Text -> !Text -> Object Object :: !Text -> ![Object] -> Object -- | An iCalendar line. data Line Begin :: !Text -> Line End :: !Text -> Line Pair :: !Text -> !Text -> Line instance GHC.Show.Show ICal.Types.Line instance GHC.Show.Show ICal.Types.Object instance Data.Aeson.Types.Class.ToJSON ICal.Types.Object -- | The basic tokenizer. module ICal.Tokenizer -- | Tokenizer a complete document from a .ics file. tokenizeObjectFromFile :: FilePath -> IO Object -- | Tokenizer a complete document. tokenizeObjectFromText :: Text -> Either String Object -- | Tokenize an Aeson instance from the document. tokenizeAesonFromText :: FromJSON a => Text -> Either String a -- | Tokenize a list of lines into an object. objectTokenizer :: [Line] -> Either String (Object, [Line]) -- | Tokenize lines of iCalendar format. linesTokenizer :: Parser [Line] -- | Tokenize a single line. lineTokenizer :: Parser Line -- | The basic parser. module ICal.Parser -- | Parser type. data Parser m s a -- | A parse error. data ParseError ExpectedObject :: !Text -> ParseError ExpectedProperty :: !Text -> ParseError GeneralProblem :: !Text -> ParseError -- | Parse some iCalendar thing. parseEither :: Monad m => s -> Parser m s a -> m (Either ParseError a) -- | Require the given object name to exist and run in that context. begin :: Monad m => Text -> Parser m [Object] a -> Parser m Object a -- | Lookup an object with this name in the current object's children, then -- run with that object as the context. object :: Monad m => Text -> Parser m [Object] a -> Parser m [Object] a -- | Lookup objects with this name in the current object's children, then -- run with that object as the context. objects :: Monad m => Text -> Parser m [Object] a -> Parser m [Object] [a] -- | Lookup a property. property :: Monad m => Text -> Parser m [Object] Text -- | Get all values of a property. properties :: Monad m => Text -> Parser m [Object] [Text] -- | Use a local state of a different type. local :: Monad m => t -> Parser m t a -> Parser m s a -- | Throw a parse error. parseError :: Monad m => ParseError -> Parser m o a -- | Get the current state. getState :: Monad m => Parser m s s -- | Put a new state. putState :: Monad m => s -> Parser m s () instance GHC.Base.Monad m => GHC.Base.Functor (ICal.Parser.Parser m s) instance GHC.Base.Monad m => GHC.Base.Applicative (ICal.Parser.Parser m s) instance GHC.Base.Monad m => GHC.Base.Monad (ICal.Parser.Parser m s) instance GHC.Show.Show ICal.Parser.ParseError instance GHC.Base.Monad m => GHC.Base.Alternative (ICal.Parser.Parser m s) -- | Basic parser for ICalendar format. module ICal -- | Tokenizer a complete document from a .ics file. tokenizeObjectFromFile :: FilePath -> IO Object -- | Tokenizer a complete document. tokenizeObjectFromText :: Text -> Either String Object -- | Tokenize an Aeson instance from the document. tokenizeAesonFromText :: FromJSON a => Text -> Either String a -- | Tree for representing iCal file. data Object Property :: !Text -> !Text -> Object Object :: !Text -> ![Object] -> Object -- | An iCalendar line. data Line Begin :: !Text -> Line End :: !Text -> Line Pair :: !Text -> !Text -> Line -- | Export to Org mode for Emacs. module ICal.Org -- | Handy exporting function. exportFromToFile :: Day -> FilePath -> FilePath -> IO () -- | Parse an iCalendar object into an Org mode document. parseFromObject :: Object -> Either ParseError [Event] -- | Parse an org-mode document from the object. documentParser :: Parser Identity Object [Event] -- | Build an org-mode document. buildDocument :: Day -> UTCTime -> [Event] -> Builder -- | An Org mode section. data Event Event :: !Text -> !UTCTime -> !(Maybe Text) -> !(Maybe UTCTime) -> !UTCTime -> Event -- | Title of the section. [eventTitle] :: Event -> !Text -- | Date starts. [eventStart] :: Event -> !UTCTime -- | Contents of the section. [eventDescription] :: Event -> !(Maybe Text) -- | Date ends. [eventEnd] :: Event -> !(Maybe UTCTime) -- | Date created. [eventCreated] :: Event -> !UTCTime instance GHC.Show.Show ICal.Org.Event