       if suggestedEventHeight > minimumEventHeight {
         pendingEvent.frame = suggestedEventFrame
         prevOffset = newCoord
-        accentDateForPendingEvent()
+        accentDateForPendingEvent(eventHeight: tag == 0 ? 0 : suggestedEventHeight)
       }
     }
     
     if sender.state == .ended {
-      commitEditing()
-    }
-  }
-
-  private func accentDateForPendingEvent() {
+      let currentTimelineTag = currentTimeline?.container.tag ?? 0
+      commitEditing(endGapFix: currentTimelineTag == 1)
+    }
+  }
+
+  private func accentDateForPendingEvent(eventHeight: CGFloat = 0) {
     if let currentTimeline = currentTimeline {
       let timeline = currentTimeline.timeline
       let converted = timeline.convert(CGPoint.zero, from: pendingEvent)
-      let date = timeline.yToDate(converted.y)
+      let date = timeline.yToDate(converted.y + eventHeight)
       timeline.accentedDate = date
       timeline.setNeedsDisplay()
     }
   }
 
-  private func commitEditing() {
+  private func commitEditing(endGapFix: Bool = false) {
     if let currentTimeline = currentTimeline {
       let timeline = currentTimeline.timeline
       timeline.accentedDate = nil

        eventFrame.origin.x = x
        eventFrame.origin.y = timeline.dateToY(snapped) - currentTimeline.container.contentOffset.y

        func animateEventSnap() {
          editedEventView.frame = eventFrame
        }

      guard let tag = sender.view?.tag else {
        return
      }
      if let currentTimeline = currentTimeline {
        currentTimeline.container.tag = tag
      }
      let diff = CGPoint(x: newCoord.x - prevOffset.x,
                         y: newCoord.y - prevOffset.y)
      var suggestedEventFrame = pendingEvent.frame
