diff --git a/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs b/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs
index fcd8208d0..b7cdc43f3 100644
--- a/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs
+++ b/src/Sonarr.Api.V3/Calendar/CalendarFeedController.cs
@@ -77,12 +77,12 @@ public IActionResult GetCalendarFeed(int pastDays = 7, int futureDays = 28, stri
if (asAllDay)
{
- occurrence.Start = new CalDateTime(episode.AirDateUtc.Value.ToLocalTime()) { HasTime = false };
+ occurrence.Start = new CalDateTime(episode.AirDateUtc.Value.ToLocalTime(), false);
}
else
{
- occurrence.Start = new CalDateTime(episode.AirDateUtc.Value) { HasTime = true };
- occurrence.End = new CalDateTime(episode.AirDateUtc.Value.AddMinutes(series.Runtime)) { HasTime = true };
+ occurrence.Start = new CalDateTime(episode.AirDateUtc.Value, true);
+ occurrence.End = new CalDateTime(episode.AirDateUtc.Value.AddMinutes(series.Runtime), true);
}
switch (series.SeriesType)
@@ -96,10 +96,10 @@ public IActionResult GetCalendarFeed(int pastDays = 7, int futureDays = 28, stri
}
}
- var serializer = (IStringSerializer)new SerializerFactory().Build(calendar.GetType(), new SerializationContext());
- var icalendar = serializer.SerializeToString(calendar);
+ var serializer = new SerializerFactory().Build(calendar.GetType(), new SerializationContext()) as IStringSerializer;
+ var icalendar = serializer?.SerializeToString(calendar);
- return Content(icalendar, "text/calendar");
+ return icalendar is null ? NoContent() : Content(icalendar, "text/calendar");
}
}
}
diff --git a/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj b/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj
index 020e9cdff..7b95108f6 100644
--- a/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj
+++ b/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj
@@ -4,7 +4,7 @@
-
+
diff --git a/src/Sonarr.Api.V5/Calendar/CalendarFeedController.cs b/src/Sonarr.Api.V5/Calendar/CalendarFeedController.cs
index c8c0b4095..ed11365a6 100644
--- a/src/Sonarr.Api.V5/Calendar/CalendarFeedController.cs
+++ b/src/Sonarr.Api.V5/Calendar/CalendarFeedController.cs
@@ -27,7 +27,7 @@ public CalendarFeedController(IEpisodeService episodeService, ISeriesService ser
}
[HttpGet("Sonarr.ics")]
- public ContentHttpResult GetCalendarFeed(int pastDays = 7, int futureDays = 28, string tags = "", bool unmonitored = false, bool premieresOnly = false, bool asAllDay = false, bool includeSpecials = true)
+ public Results GetCalendarFeed(int pastDays = 7, int futureDays = 28, string tags = "", bool unmonitored = false, bool premieresOnly = false, bool asAllDay = false, bool includeSpecials = true)
{
var start = DateTime.Today.AddDays(-pastDays);
var end = DateTime.Today.AddDays(futureDays);
@@ -76,12 +76,12 @@ public ContentHttpResult GetCalendarFeed(int pastDays = 7, int futureDays = 28,
if (asAllDay)
{
- occurrence.Start = new CalDateTime(episode.AirDateUtc!.Value.ToLocalTime()) { HasTime = false };
+ occurrence.Start = new CalDateTime(episode.AirDateUtc!.Value.ToLocalTime(), false);
}
else
{
- occurrence.Start = new CalDateTime(episode.AirDateUtc!.Value) { HasTime = true };
- occurrence.End = new CalDateTime(episode.AirDateUtc.Value.AddMinutes(series.Runtime)) { HasTime = true };
+ occurrence.Start = new CalDateTime(episode.AirDateUtc!.Value, true);
+ occurrence.End = new CalDateTime(episode.AirDateUtc.Value.AddMinutes(series.Runtime), true);
}
switch (series.SeriesType)
@@ -95,9 +95,9 @@ public ContentHttpResult GetCalendarFeed(int pastDays = 7, int futureDays = 28,
}
}
- var serializer = (IStringSerializer)new SerializerFactory().Build(calendar.GetType(), new SerializationContext());
- var icalendar = serializer.SerializeToString(calendar);
+ var serializer = new SerializerFactory().Build(calendar.GetType(), new SerializationContext()) as IStringSerializer;
+ var icalendar = serializer?.SerializeToString(calendar);
- return TypedResults.Content(icalendar, "text/calendar");
+ return icalendar is null ? TypedResults.NoContent() : TypedResults.Content(icalendar, "text/calendar");
}
}
diff --git a/src/Sonarr.Api.V5/Sonarr.Api.V5.csproj b/src/Sonarr.Api.V5/Sonarr.Api.V5.csproj
index 9e67c56e1..0b7a7df98 100644
--- a/src/Sonarr.Api.V5/Sonarr.Api.V5.csproj
+++ b/src/Sonarr.Api.V5/Sonarr.Api.V5.csproj
@@ -7,7 +7,7 @@
-
+