diff --git a/lib/simple_calendar/calendar.rb b/lib/simple_calendar/calendar.rb
index <HASH>..<HASH> 100644
--- a/lib/simple_calendar/calendar.rb
+++ b/lib/simple_calendar/calendar.rb
@@ -51,7 +51,9 @@ module SimpleCalendar
 
       def sorted_events
         events = options.fetch(:events, []).sort_by(&attribute)
-        events.group_by { |e| e.send(attribute).to_date }
+
+        scheduled = events.reject { |e| e.send(attribute).nil? }
+        scheduled.group_by { |e| e.send(attribute).to_date }
       end
 
       def start_date
diff --git a/spec/calendar_spec.rb b/spec/calendar_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/calendar_spec.rb
+++ b/spec/calendar_spec.rb
@@ -50,6 +50,13 @@ describe SimpleCalendar::Calendar do
       expect(sorted_events[today]).to eq([event1, event2])
       expect(sorted_events[tomorrow]).to eq([event3])
     end
+
+    it 'handles events without a start time' do
+      event = double(start_time: nil)
+      calendar = SimpleCalendar::Calendar.new(nil, events: [event])
+
+      expect{calendar.send(:sorted_events)}.not_to raise_error
+    end
   end
 
   describe "#start_date" do
Handle events without a start time