diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index 1e4d56e1a5..11fb198c23 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -40,6 +40,12 @@ namespace MediaBrowser.Controller.Entities.TV
/// The air time.
public string AirTime { get; set; }
+ ///
+ /// Gets or sets the date last episode added.
+ ///
+ /// The date last episode added.
+ public DateTime DateLastEpisodeAdded { get; set; }
+
///
/// Series aren't included directly in indices - Their Episodes will roll up to them
///
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 7e90d41f5f..f0d332e107 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -110,6 +110,7 @@
+
diff --git a/MediaBrowser.Providers/TV/SeriesDynamicInfoProvider.cs b/MediaBrowser.Providers/TV/SeriesDynamicInfoProvider.cs
new file mode 100644
index 0000000000..59faaa931e
--- /dev/null
+++ b/MediaBrowser.Providers/TV/SeriesDynamicInfoProvider.cs
@@ -0,0 +1,45 @@
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Logging;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Providers.TV
+{
+ public class SeriesDynamicInfoProvider : BaseMetadataProvider, IDynamicInfoProvider
+ {
+ public SeriesDynamicInfoProvider(ILogManager logManager, IServerConfigurationManager configurationManager)
+ : base(logManager, configurationManager)
+ {
+ }
+
+ public override bool Supports(BaseItem item)
+ {
+ return item is Series;
+ }
+
+ public override Task FetchAsync(BaseItem item, bool force, CancellationToken cancellationToken)
+ {
+ var series = (Series)item;
+
+ var episodes = series.RecursiveChildren
+ .OfType()
+ .ToList();
+
+ series.DateLastEpisodeAdded = episodes.Select(i => i.DateCreated)
+ .OrderByDescending(i => i)
+ .FirstOrDefault();
+
+ // Don't save to the db
+ return FalseTaskResult;
+ }
+
+ public override MetadataProviderPriority Priority
+ {
+ get { return MetadataProviderPriority.Last; }
+ }
+ }
+}