         let timeToken: String = tokens.remove(at: timeTokenIndex)
         
         //Analyze time token.
-        var times: (start: Date?, end: Date?) = analyzeTimeToken(timeToken)
+        var times: (start: Date?, end: Date?) = analyzeDoubleTimeToken(timeToken)
         
         //Put time tokens on the schedule date.
         addDateInfoToTime(&times.start, onDate: date)
         addDateInfoToTime(&times.end, onDate: date)
         
         return times
+    }
+    
+    // Search through a tokens array with a single time token and extract the time from it.
+    private class func parseTokensForSingleTime(_ tokens: inout [String], index timeTokenIndex: Int, onDate date: Date) -> Date? {
+        //Throw out any tokens after time token.
+        removeArrayItemsAfterIndex(timeTokenIndex, array: &tokens)
+        
+        //Remove time token and transfer to string.
+        let timeToken: String = tokens.remove(at: timeTokenIndex)
+        
+        //Analyze time token.
+        var time: Date? = analyzeSingleTimeToken(timeToken)
+        
+        //Put time tokens on the schedule date.
+        addDateInfoToTime(&time, onDate: date)
+        
+        return time
     }
 }
 

        var output: String = ""
        for item in items {
            if let spanItem = item as? TimeSpanScheduleItem {
                output += "\(spanItem.blockName) \(timeStringForDate(spanItem.startTime as Date?))-\(timeStringForDate(spanItem.endTime as Date?))&lt;br&gt;"
            }
        }
        
        return output

        let lines: [String] = separateLines(scheduleString)
        
        for line in lines {
            //Split each line into tokens.
            var tokens: [String] = separateLineIntoTokens(line)
            
            //Identify index of time token.
            let singleTimeTokenIndex: Int? = indexOfSingleTimeTokenInArray(tokens)
            let doubleTimeTokenIndex: Int? = indexOfDoubleTimeTokenInArray(tokens)
            
            if (singleTimeTokenIndex == nil && doubleTimeTokenIndex == nil) {
                //Only add a timeless ScheduleItem if it has a description.
                if (tokens != []) {
                    //Make schedule item and add to schedule.
                    let item: DescriptionScheduleItem = DescriptionScheduleItem(blockName: stringFromTokens(tokens))
                    schedule.items.append(item)
                }
            } else if ( doubleTimeTokenIndex != nil) {
                //Analyze time token.
                let times: (start: Date?, end: Date?) = parseTokensForDoubleTimes(&tokens, index: doubleTimeTokenIndex!, onDate: schedule.date as Date)
                
                //Make schedule item and add to schedule.
                let item: TimeSpanScheduleItem = TimeSpanScheduleItem(blockName: stringFromTokens(tokens), startTime: times.start, endTime: times.end)
                schedule.items.append(item)
            } else { // singleTimeTokenIndex != nil
                //Analyze time token.
                let time: Date? = parseTokensForSingleTime(&tokens, index: singleTimeTokenIndex!, onDate: schedule.date as Date)
                
                //Make schedule item and add to schedule.
                let item: TimePointScheduleItem = TimePointScheduleItem(blockName: stringFromTokens(tokens), time: time)
                schedule.items.append(item)
            }
        }
