diff --git a/homeassistant/components/automation/time.py b/homeassistant/components/automation/time.py
index 922b6b8287e8bad9c5775bd07a41f0ebf794d185..0f0e2fe38dd19b0b111709826a9a8756af2d997b 100644
--- a/homeassistant/components/automation/time.py
+++ b/homeassistant/components/automation/time.py
@@ -19,20 +19,27 @@ CONF_WEEKDAY = "weekday"
 
 WEEKDAYS = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
 
+_LOGGER = logging.getLogger(__name__)
+
 
 def trigger(hass, config, action):
     """ Listen for state changes based on `config`. """
-    hours = convert(config.get(CONF_HOURS), int)
-    minutes = convert(config.get(CONF_MINUTES), int)
-    seconds = convert(config.get(CONF_SECONDS), int)
-
     if CONF_AFTER in config:
         after = dt_util.parse_time_str(config[CONF_AFTER])
         if after is None:
-            logging.getLogger(__name__).error(
+            _LOGGER.error(
                 'Received invalid after value: %s', config[CONF_AFTER])
             return False
         hours, minutes, seconds = after.hour, after.minute, after.second
+    elif CONF_HOURS in config or CONF_MINUTES in config \
+         or CONF_SECONDS in config:
+        hours = convert(config.get(CONF_HOURS), int)
+        minutes = convert(config.get(CONF_MINUTES), int)
+        seconds = convert(config.get(CONF_SECONDS), int)
+    else:
+        _LOGGER.error('One of %s, %s, %s OR %s needs to be specified',
+            CONF_HOURS, CONF_MINUTES, CONF_SECONDS, CONF_AFTER)
+        return False
 
     def time_automation_listener(now):
         """ Listens for time changes and calls action. """