It's difficult to debug your code without seeing an example of c_data$started_at
parse_date_time() appears to be correctly parsing and formatting the time field; you should not expect it to remove the hour. To trim to minutes and seconds (which you seem to want to do), you must further process the datetime that lubridate is producing.
When facing difficult date/time parsing problems, I find it is best to set exact = TRUE and specify the exact formatting of the data/time string, warts and all. This is critical for weird, none-standard dates and times.
See the examples in the documentation: