         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;"
+                output += "\(spanItem.blockName) \(timeStringForDate(spanItem.startTime as Date?))-\(timeStringForDate(spanItem.endTime as Date?))"
+            } else if let spanItem = item as? TimePointScheduleItem {
+                output += "\(spanItem.blockName) \(timeStringForDate(spanItem.time as Date?))"
+            } else if let spanItem = item as? DescriptionScheduleItem {
+                output += "\(spanItem.blockName)"
             }
+            // Always finish each item with a line break tag <br>.
+            output += "&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 timeTokenIndex: Int? = indexOfTimeTokenInArray(tokens)
            
            if (timeTokenIndex == nil) {
                //Only add a timeless ScheduleItem if it has a description.
                if (tokens != []) {
                    //Make schedule item and add to schedule.
                    let item: TimeSpanScheduleItem = TimeSpanScheduleItem(blockName: stringFromTokens(tokens))
                    schedule.items.append(item)
                }
            } else {
                //Analyze time token.
                let times: (start: Date?, end: Date?) = parseArrayForTimes(&tokens, index: timeTokenIndex!, 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)
            }
        }

        let timeToken: String = tokens.remove(at: timeTokenIndex)
        
        //Analyze time token.
        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
    }
}

