Проблема почти наверняка в том, что вы пытаетесь преобразовать вашу строку в DateTime:
Convert.ToDateTime(first)
Ваша строка не в «стандартном» формате.
Я бы предложил использоватьПодстрока, чтобы удалить текст «~ Schedule», а затем выполнить синтаксический анализ строки:
var myDate = DateTime.ParseExact("9:34 AM~Schedule 12".Substring(0,7), "h:mm tt");
Затем вы можете использовать DateTime.TimeOfDay в своем сравнении.