diff --git a/homeassistant/components/sensor/darksky.py b/homeassistant/components/sensor/darksky.py
index ab79cff2aad..bf3ff0587a3 100644
--- a/homeassistant/components/sensor/darksky.py
+++ b/homeassistant/components/sensor/darksky.py
@@ -25,58 +25,76 @@ _LOGGER = logging.getLogger(__name__)
 CONF_ATTRIBUTION = "Powered by Dark Sky"
 CONF_UNITS = 'units'
 CONF_UPDATE_INTERVAL = 'update_interval'
+CONF_FORECAST = 'forecast'
 
 DEFAULT_NAME = 'Dark Sky'
 
 # Sensor types are defined like so:
 # Name, si unit, us unit, ca unit, uk unit, uk2 unit
 SENSOR_TYPES = {
-    'summary': ['Summary', None, None, None, None, None, None],
+    'summary': ['Summary', None, None, None, None, None, None, []],
     'minutely_summary': ['Minutely Summary',
-                         None, None, None, None, None, None],
-    'hourly_summary': ['Hourly Summary', None, None, None, None, None, None],
-    'daily_summary': ['Daily Summary', None, None, None, None, None, None],
-    'icon': ['Icon', None, None, None, None, None, None],
+                         None, None, None, None, None, None, []],
+    'hourly_summary': ['Hourly Summary', None, None, None, None, None, None,
+                       []],
+    'daily_summary': ['Daily Summary', None, None, None, None, None, None, []],
+    'icon': ['Icon', None, None, None, None, None, None,
+             ['currently', 'hourly', 'daily']],
     'nearest_storm_distance': ['Nearest Storm Distance',
-                               'km', 'mi', 'km', 'km', 'mi',
-                               'mdi:weather-lightning'],
+                               'km', 'm', 'km', 'km', 'm',
+                               'mdi:weather-lightning', ['currently']],
     'nearest_storm_bearing': ['Nearest Storm Bearing',
                               '°', '°', '°', '°', '°',
-                              'mdi:weather-lightning'],
+                              'mdi:weather-lightning', ['currently']],
     'precip_type': ['Precip', None, None, None, None, None,
-                    'mdi:weather-pouring'],
+                    'mdi:weather-pouring',
+                    ['currently', 'minutely', 'hourly', 'daily']],
     'precip_intensity': ['Precip Intensity',
-                         'mm', 'in', 'mm', 'mm', 'mm', 'mdi:weather-rainy'],
+                         'mm', 'in', 'mm', 'mm', 'mm', 'mdi:weather-rainy',
+                         ['currently', 'minutely', 'hourly', 'daily']],
     'precip_probability': ['Precip Probability',
-                           '%', '%', '%', '%', '%', 'mdi:water-percent'],
+                           '%', '%', '%', '%', '%', 'mdi:water-percent',
+                           ['currently', 'minutely', 'hourly', 'daily']],
     'temperature': ['Temperature',
-                    '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer'],
+                    '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer',
+                    ['currently', 'hourly']],
     'apparent_temperature': ['Apparent Temperature',
-                             '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer'],
+                             '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer',
+                             ['currently', 'hourly']],
     'dew_point': ['Dew point', '°C', '°F', '°C', '°C', '°C',
-                  'mdi:thermometer'],
+                  'mdi:thermometer', ['currently', 'hourly', 'daily']],
     'wind_speed': ['Wind Speed', 'm/s', 'mph', 'km/h', 'mph', 'mph',
-                   'mdi:weather-windy'],
-    'wind_bearing': ['Wind Bearing', '°', '°', '°', '°', '°', 'mdi:compass'],
+                   'mdi:weather-windy', ['currently', 'hourly', 'daily']],
+    'wind_bearing': ['Wind Bearing', '°', '°', '°', '°', '°', 'mdi:compass',
+                     ['currently', 'hourly', 'daily']],
     'cloud_cover': ['Cloud Coverage', '%', '%', '%', '%', '%',
-                    'mdi:weather-partlycloudy'],
-    'humidity': ['Humidity', '%', '%', '%', '%', '%', 'mdi:water-percent'],
+                    'mdi:weather-partlycloudy',
+                    ['currently', 'hourly', 'daily']],
+    'humidity': ['Humidity', '%', '%', '%', '%', '%', 'mdi:water-percent',
+                 ['currently', 'hourly', 'daily']],
     'pressure': ['Pressure', 'mbar', 'mbar', 'mbar', 'mbar', 'mbar',
-                 'mdi:gauge'],
-    'visibility': ['Visibility', 'km', 'mi', 'km', 'km', 'mi', 'mdi:eye'],
-    'ozone': ['Ozone', 'DU', 'DU', 'DU', 'DU', 'DU', 'mdi:eye'],
+                 'mdi:gauge', ['currently', 'hourly', 'daily']],
+    'visibility': ['Visibility', 'km', 'm', 'km', 'km', 'm', 'mdi:eye',
+                   ['currently', 'hourly', 'daily']],
+    'ozone': ['Ozone', 'DU', 'DU', 'DU', 'DU', 'DU', 'mdi:eye',
+              ['currently', 'hourly', 'daily']],
     'apparent_temperature_max': ['Daily High Apparent Temperature',
                                  '°C', '°F', '°C', '°C', '°C',
-                                 'mdi:thermometer'],
+                                 'mdi:thermometer',
+                                 ['currently', 'hourly', 'daily']],
     'apparent_temperature_min': ['Daily Low Apparent Temperature',
                                  '°C', '°F', '°C', '°C', '°C',
-                                 'mdi:thermometer'],
+                                 'mdi:thermometer',
+                                 ['currently', 'hourly', 'daily']],
     'temperature_max': ['Daily High Temperature',
-                        '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer'],
+                        '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer',
+                        ['currently', 'hourly', 'daily']],
     'temperature_min': ['Daily Low Temperature',
-                        '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer'],
+                        '°C', '°F', '°C', '°C', '°C', 'mdi:thermometer',
+                        ['currently', 'hourly', 'daily']],
     'precip_intensity_max': ['Daily Max Precip Intensity',
-                             'mm', 'in', 'mm', 'mm', 'mm', 'mdi:thermometer'],
+                             'mm', 'in', 'mm', 'mm', 'mm', 'mdi:thermometer',
+                             ['currently', 'hourly', 'daily']],
 }
 
 PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
@@ -87,6 +105,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
     vol.Optional(CONF_UNITS): vol.In(['auto', 'si', 'us', 'ca', 'uk', 'uk2']),
     vol.Optional(CONF_UPDATE_INTERVAL, default=timedelta(seconds=120)): (
         vol.All(cv.time_period, cv.positive_timedelta)),
+    vol.Optional(CONF_FORECAST):
+        vol.All(cv.ensure_list, [vol.Range(min=1, max=7)]),
 })
 
 
@@ -119,9 +139,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
 
     name = config.get(CONF_NAME)
 
+    forecast = config.get(CONF_FORECAST)
     sensors = []
     for variable in config[CONF_MONITORED_CONDITIONS]:
         sensors.append(DarkSkySensor(forecast_data, variable, name))
+        if forecast is not None and 'daily' in SENSOR_TYPES[variable][7]:
+            for forecast_day in forecast:
+                sensors.append(DarkSkySensor(forecast_data,
+                                             variable, name, forecast_day))
 
     add_devices(sensors, True)
 
@@ -129,19 +154,24 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
 class DarkSkySensor(Entity):
     """Implementation of a Dark Sky sensor."""
 
-    def __init__(self, forecast_data, sensor_type, name):
+    def __init__(self, forecast_data, sensor_type, name, forecast_day=0):
         """Initialize the sensor."""
         self.client_name = name
         self._name = SENSOR_TYPES[sensor_type][0]
         self.forecast_data = forecast_data
         self.type = sensor_type
+        self.forecast_day = forecast_day
         self._state = None
         self._unit_of_measurement = None
 
     @property
     def name(self):
         """Return the name of the sensor."""
-        return '{} {}'.format(self.client_name, self._name)
+        if self.forecast_day == 0:
+            return '{} {}'.format(self.client_name, self._name)
+        else:
+            return '{} {} {}'.format(self.client_name, self._name,
+                                     self.forecast_day)
 
     @property
     def state(self):
@@ -198,19 +228,21 @@ class DarkSkySensor(Entity):
             self.forecast_data.update_hourly()
             hourly = self.forecast_data.data_hourly
             self._state = getattr(hourly, 'summary', '')
-        elif self.type in ['daily_summary',
-                           'temperature_min',
-                           'temperature_max',
-                           'apparent_temperature_min',
-                           'apparent_temperature_max',
-                           'precip_intensity_max']:
+        elif self.forecast_day > 0 or (
+                self.type in ['daily_summary',
+                              'temperature_min',
+                              'temperature_max',
+                              'apparent_temperature_min',
+                              'apparent_temperature_max',
+                              'precip_intensity_max']):
             self.forecast_data.update_daily()
             daily = self.forecast_data.data_daily
             if self.type == 'daily_summary':
                 self._state = getattr(daily, 'summary', '')
             else:
                 if hasattr(daily, 'data'):
-                    self._state = self.get_state(daily.data[0])
+                    self._state = self.get_state(
+                        daily.data[self.forecast_day])
                 else:
                     self._state = 0
         else:
diff --git a/tests/components/sensor/test_darksky.py b/tests/components/sensor/test_darksky.py
index e3c83bad2a6..effa7b3dbd8 100644
--- a/tests/components/sensor/test_darksky.py
+++ b/tests/components/sensor/test_darksky.py
@@ -32,7 +32,8 @@ class TestDarkSkySetup(unittest.TestCase):
         self.key = 'foo'
         self.config = {
             'api_key': 'foo',
-            'monitored_conditions': ['summary', 'icon'],
+            'forecast': [1, 2],
+            'monitored_conditions': ['summary', 'icon', 'temperature_max'],
             'update_interval': timedelta(seconds=120),
         }
         self.lat = 37.8267
@@ -80,4 +81,4 @@ class TestDarkSkySetup(unittest.TestCase):
         darksky.setup_platform(self.hass, self.config, self.add_entities)
         self.assertTrue(mock_get_forecast.called)
         self.assertEqual(mock_get_forecast.call_count, 1)
-        self.assertEqual(len(self.entities), 2)
+        self.assertEqual(len(self.entities), 7)