diff --git a/src/view/phui/calendar/PHUICalendarDayView.php b/src/view/phui/calendar/PHUICalendarDayView.php
--- a/src/view/phui/calendar/PHUICalendarDayView.php
+++ b/src/view/phui/calendar/PHUICalendarDayView.php
@@ -84,7 +84,7 @@
       }
       foreach ($current_hour_events as $event) {
         $event_start = $event->getEpochStart();
-        $event_end = $event->getEpochEnd();
+        $event_end = min($event->getEpochEnd(), $day_end);
 
         $top = (($event_start - $hour_start) / ($hour_end - $hour_start))
           * 100;
@@ -233,6 +233,7 @@
         $this->rangeStart->getEpoch() > $day_end)) {
       $errors[] = pht('Day is out of query range');
     }
+    return $errors;
   }
 
   private function renderSidebar() {
@@ -503,8 +504,8 @@
 
     foreach ($events as $event) {
       $destination_cluster_key = null;
-      $event_start = $event->getEpochStart();
-      $event_end = $event->getEpochEnd();
+      $event_start = $event->getEpochStart() - (30 * 60);
+      $event_end = $event->getEpochEnd() + (30 * 60);
 
       foreach ($clusters as $key => $cluster) {
         foreach ($cluster as $clustered_event) {