             
             if retrievedPathsFromDates.count > 0 {
                 let sectionIndexPath =  self.pathsFromDates([date])[0]
-                let position: UICollectionViewScrollPosition = self.direction == .Horizontal ? .Left : .Top
+                var position: UICollectionViewScrollPosition = self.direction == .Horizontal ? .Left : .Top
+                if !self.pagingEnabled {
+                    if let validPosition:UICollectionViewScrollPosition = preferredScrollPosition {
+                        if self.direction == .Horizontal {
+                            if validPosition == .Left || validPosition == .Right || validPosition == .CenteredHorizontally {
+                                position = validPosition
+                            } else {
+                                position = .Left
+                            }
+                        } else {
+                            if validPosition == .Top || validPosition == .Bottom || validPosition == .CenteredVertically {
+                                position = validPosition
+                            } else {
+                                position = .Top
+                            }
+                        }
+                    }
+                }
                 
                 let scrollToIndexPath = {(iPath: NSIndexPath, withAnimation: Bool)-> Void in
                     if let validCompletionHandler = completionHandler {

    public func selectDates(dates: [NSDate], triggerSelectionDelegate: Bool = true) {
        var allIndexPathsToReload: [NSIndexPath] = []
        
        delayRunOnMainThread(0.0) {
            for date in dates {
                let components = self.calendar.components([.Year, .Month, .Day],  fromDate: date)
                let firstDayOfDate = self.calendar.dateFromComponents(components)!

    /// Scrolls the calendar view to the start of a section view containing a specified date.
    /// - Paramater date: The calendar view will scroll to a date-cell containing this date if it exists
    /// - Paramater animateScroll: Bool indicating if animation should be enabled
    /// - Paramater preferredScrollPositionIndex: Integer indicating the end scroll position on the screen. This value indicates column number for Horizontal scrolling and row number for a vertical scrolling calendar
    /// - Parameter completionHandler: A completion handler that will be executed at the end of the scroll animation
    public func scrollToDate(date: NSDate, triggerScrollToDateDelegate: Bool = true, animateScroll: Bool = true, preferredScrollPosition: UICollectionViewScrollPosition? = nil, completionHandler:(()->Void)? = nil) {
        self.triggerScrollToDateDelegate = triggerScrollToDateDelegate
        
        let components = calendar.components([.Year, .Month, .Day],  fromDate: date)
