I have my model from models.persistentmodels
...
Thing
    title Text
    price Int 
    kosher Bool
    optionalstuff [Text] Maybe
    createdat UTCTime
    updatedat UTCTime
    deriving Show
...
It contains two time fields, which are UTCTime. 
I am receiving via AJAX what is almost a Thing, in JSON. But the user JSON should not have createdat and updatedat or kosher. So we need to fill them in.
postNewEventR = do
    inputjson <- requireCheckJsonBody :: Handler Value
...
    -- get rawstringofthings from inputjson
...
    let objectsMissingSomeFields = case (decode (BL.fromStrict $ TE.encodeUtf8 rawstringofthings) :: Maybe [Object]) of
                        Nothing -> error "Failed to get a list of raw objects."
                        Just x  -> x
    now <- liftIO getCurrentTime
    -- Solution needs to go here:
    let objectsWithAllFields = objectsMissingSomeFields
    -- We hope to be done
    let things = case (eitherDecode $ encode objectsWithAllFields) :: Either String [Thing] of
                        Left err -> error $ "Failed to get things because: " <> err
                        Right xs  -> xs
The error "Failed to get things" comes here because the JSON objects we parsed are missing fields that are needed in the model.