diff --git a/assets/src/scripts/components/hydrograph/index.js b/assets/src/scripts/components/hydrograph/index.js
index ddf4f300f85ef33dfee74a9e791eabcaeeba894c..7c13552b63eb5af26dd0210c1a0244bf45951008 100644
--- a/assets/src/scripts/components/hydrograph/index.js
+++ b/assets/src/scripts/components/hydrograph/index.js
@@ -68,14 +68,14 @@ export const attachToNode = function (store,
     if (showOnlyGraph) {
         // Only fetch what is needed
         if (parameterCode && period) {
-            fetchDataPromise = store.dispatch(Actions.retrieveCustomTimePeriodTimeSeries(siteno, parameterCode, period));
+            fetchDataPromise = store.dispatch(Actions.retrieveCustomTimePeriodTimeSeries(siteno, parameterCode, period, true));
         } else if (parameterCode && startDT && endDT) {
             // Don't fetch until time zone is available
             fetchDataPromise = fetchTimeZonePromise.then(() => {
                 store.dispatch(Actions.retrieveDataForDateRange(siteno, startDT, endDT, parameterCode));
             });
         } else {
-            fetchDataPromise = store.dispatch(Actions.retrieveTimeSeries(siteno, parameterCode ? [parameterCode] : null));
+            fetchDataPromise = store.dispatch(Actions.retrieveTimeSeries(siteno, parameterCode ? [parameterCode] : null, true));
         }
     } else {
         // Retrieve all parameter codes for 7 days and median statistics
diff --git a/assets/src/scripts/store/index.js b/assets/src/scripts/store/index.js
index 1a70c744ac5dd28b97745b1fadb9f3db62f88cef..37418e6c7f4370ab28187fa911585c4a9f55f330 100644
--- a/assets/src/scripts/store/index.js
+++ b/assets/src/scripts/store/index.js
@@ -61,7 +61,6 @@ const getCurrentVariableId = function(timeSeries, variables) {
     }
 };
 
-
 export const Actions = {
     retrieveLocationTimeZone(latitude, longitude) {
         return function(dispatch) {
@@ -76,15 +75,22 @@ export const Actions = {
             );
         };
     },
-    retrieveTimeSeries(siteno, params=null) {
+    retrieveTimeSeries(siteno, params=null, fetchTimeZone=false) {
         return function (dispatch, getState) {
             const currentState = getState();
             const requestKey = getTsRequestKey('current', 'P7D')(currentState);
             dispatch(Actions.addTimeSeriesLoading([requestKey]));
+            let fetchTimeZonePromise;
 
-            return getTimeSeries({sites: [siteno], params}).then(
+            let fetchTimeSeriesPromise = getTimeSeries({sites: [siteno], params}).then(
                 series => {
                     const collection = normalize(series, requestKey);
+                    if (fetchTimeZone) {
+                        const location = collection.sourceInfo ? collection.sourceInfo[siteno].geoLocation.geogLocation : {};
+                        fetchTimeZonePromise = dispatch(Actions.retrieveLocationTimeZone(location.latitude || null, location.longitude || null));
+                    } else {
+                        fetchTimeZonePromise = Promise.resolve();
+                    }
 
                     // Get the start/end times of this request's range.
                     const notes = collection.queryInfo[requestKey].notes;
@@ -111,6 +117,8 @@ export const Actions = {
                     dispatch(Actions.toggleTimeSeries('current', false));
                 }
             );
+
+            return Promise.all(fetchTimeSeriesPromise, fetchTimeZonePromise);
         };
     },
     retrieveCompareTimeSeries(site, period, startTime, endTime) {
@@ -140,16 +148,23 @@ export const Actions = {
         };
     },
 
-    retrieveCustomTimePeriodTimeSeries(site, parameterCd, period) {
+    retrieveCustomTimePeriodTimeSeries(site, parameterCd, period, fetchTimeZone=false) {
         return function(dispatch, getState) {
             const state = getState();
             const parmCd = parameterCd;
             const requestKey = getTsRequestKey('current', 'custom', parmCd)(state);
+            let fetchTimeZonePromise;
             dispatch(Actions.setCurrentDateRange('custom'));
             dispatch(Actions.addTimeSeriesLoading([requestKey]));
-            return getTimeSeries({sites: [site], params: [parmCd], period: period}).then(
+            let fetchTimeSeriesPromise = getTimeSeries({sites: [site], params: [parmCd], period: period}).then(
                 series => {
                     const collection = normalize(series, requestKey);
+                    if (fetchTimeZone) {
+                        const location = collection.sourceInfo ? collection.sourceInfo[site].geoLocation.geogLocation : {};
+                        fetchTimeZonePromise = dispatch(Actions.retrieveLocationTimeZone(location.latitude || null, location.longitude || null));
+                    } else {
+                        fetchTimeZonePromise = Promise.resolve();
+                    }
                     const variables = Object.values(collection.variables);
                     const variableToDraw = find(variables, v =>  v.variableCode.value === parameterCd);
                     dispatch(Actions.setCurrentVariable(variableToDraw.variableCode.variableID));
@@ -162,10 +177,11 @@ export const Actions = {
                     dispatch(Actions.removeTimeSeriesLoading([requestKey]));
                 }
             );
+            return Promise.all(fetchTimeZonePromise, fetchTimeSeriesPromise);
         };
     },
 
-    retrieveCustomTimeSeries(site, startTime, endTime, parmCd) {
+    retrieveCustomTimeSeries(site, startTime, endTime, parmCd, fetchTimeZone=false) {
         return function(dispatch, getState) {
             const state = getState();
             const thisParmCd = parmCd ? parmCd : getCurrentParmCd(state);
@@ -174,7 +190,8 @@ export const Actions = {
             dispatch(Actions.setCustomDateRange(startTime, endTime));
             dispatch(Actions.addTimeSeriesLoading([requestKey]));
             dispatch(Actions.toggleTimeSeries('median', false));
-            return getTimeSeries({
+            let fetchTimeZonePromise;
+            let fetchTimeSeriesPromise = getTimeSeries({
                 sites: [site],
                 params: [thisParmCd],
                 startDate: startTime,
@@ -182,6 +199,12 @@ export const Actions = {
             }).then(
                 series => {
                     const collection = normalize(series, requestKey);
+                    if (fetchTimeZone) {
+                        const location = collection.sourceInfo ? collection.sourceInfo[site].geoLocation.geogLocation : {};
+                        fetchTimeZonePromise = dispatch(Actions.retrieveLocationTimeZone(location.latitude || null, location.longitude || null));
+                    } else {
+                        fetchTimeZonePromise = Promise.resolve();
+                    }
                     dispatch(Actions.addSeriesCollection(requestKey, collection));
                     dispatch(Actions.removeTimeSeriesLoading([requestKey]));
                 },
@@ -191,6 +214,7 @@ export const Actions = {
                     dispatch(Actions.removeTimeSeriesLoading([requestKey]));
                 }
             );
+            return Promise.all(fetchTimeZonePromise, fetchTimeSeriesPromise);
         };
     },
     retrieveExtendedTimeSeries(site, period, paramCd=null) {
@@ -436,14 +460,14 @@ export const Actions = {
             return dispatch(Actions.retrieveCustomTimeSeries(siteno, startTime, endTime));
         };
     },
-    retrieveDataForDateRange(siteno, startTimeStr, endTimeStr, parmCd) {
+    retrieveDataForDateRange(siteno, startTimeStr, endTimeStr, parmCd, fetchTimeZone=false) {
         return function(dispatch, getState) {
             const state = getState();
             const locationIanaTimeZone = getIanaTimeZone(state);
             const startTime = new DateTime.fromISO(startTimeStr,{zone: locationIanaTimeZone}).toMillis();
             const endTime = new DateTime.fromISO(endTimeStr, {zone: locationIanaTimeZone}).toMillis();
 
-            dispatch(Actions.retrieveCustomTimeSeries(siteno, startTime, endTime, parmCd));
+            dispatch(Actions.retrieveCustomTimeSeries(siteno, startTime, endTime, parmCd, fetchTimeZone));
         };
     },
     setGageHeightFromStageIndex(index) {