to_dataset_dict not setting time.encoding when decode_times=True
It looks like `time.encoding` is not being set when I read in multiple files with `to_dataset_dict` with `decode_times=True`.

When you write a dataset to netCDF with no time encoding, the resulting time units end up differing from the original datasets, which I find to be unexpected behavior.

Following pydata/xarray#1614, a potential behavior is to keep the encoding from the first file. I think this is already being done for attributes.
diff --git a/intake_esm/merge_util.py b/intake_esm/merge_util.py
index a189ec3..b7e77e0 100644
--- a/intake_esm/merge_util.py
+++ b/intake_esm/merge_util.py
@@ -90,17 +90,35 @@ def aggregate(
 
             attrs = dict_union(*[ds.attrs for ds in dsets])
 
+            # copy encoding for each variable from first encounter
+            variables = set([v for ds in dsets for v in ds.variables])
+
+            encoding = {}
+            for ds in dsets:
+                for v in variables:
+                    if v in ds.variables and v not in encoding:
+                        if ds[v].encoding:
+                            encoding[v] = ds[v].encoding
+                            # get rid of the misleading file-specific attributes
+                            # github.com/pydata/xarray/issues/2550
+                            for enc_attrs in ['source', 'original_shape']:
+                                if enc_attrs in encoding[v]:
+                                    del encoding[v][enc_attrs]
+
             if agg_type == 'join_new':
                 ds = join_new(dsets, dim_name=agg_column, coord_value=keys, options=agg_options)
 
             elif agg_type == 'join_existing':
-
                 ds = join_existing(dsets, options=agg_options)
 
             elif agg_type == 'union':
                 ds = union(dsets, options=agg_options)
 
             ds.attrs = attrs
+            for v in ds.variables:
+                if v in encoding and not ds[v].encoding:
+                    ds[v].encoding = encoding[v]
+
             return ds
 
     return apply_aggregation(v)
diff --git a/tests/cmip6/test_cmip6.py b/tests/cmip6/test_cmip6.py
index 299bab1..bb0af21 100644
--- a/tests/cmip6/test_cmip6.py
+++ b/tests/cmip6/test_cmip6.py
@@ -38,6 +38,7 @@ def test_to_dataset_dict(esmcol_path, query, kwargs):
     _, ds = cat.to_dataset_dict().popitem()
     assert 'member_id' in ds.dims
     assert len(ds.__dask_keys__()) > 0
+    assert ds.time.encoding
 
 
 @pytest.mark.parametrize(
['tests/cmip6/test_cmip6.py', 'intake_esm/merge_util.py']