Our home-grown CMS creates calendar feeds which contain a youth sports team's schedule for a single season. We provide the URL for the end-user to consume the feed on their device (or in their software program), which tens of thousands of people do each year.
The problem is that for most programs and devices, the UI for adding calendar subscriptions is relatively good but for deleting those feeds when they're no longer needed - not so much.
For us, this created a situation where over 90% of calendar feed requests to our servers were from teams whose schedules were long since completed.
Initially we tried just returning an empty feed for non-current teams but that didn't do anything to prevent the devices from making the request in the first place (which ties up resources on our servers). It simply wasn't annoying enough (or at all) to motivate the end-user to do something.
So for the past couple years we've instead returned a single event that spans from the previous month to the following month, with a title of "Please Delete This Out-Dated Feed" and even provided some instructions for doing so. That helped a little bit but not enough.
Lately we've learned that it's possible to attach an alert to a calendar feed, so to try to provoke the user into taking action we've also decided to attach an alert to the single "out-dated" event; an alert that repeats twice at 3-hour intervals. This has been more effective but it's super-annoying for the end-user.
So, here is the question. Is there anything we can do on the server that when a device makes a request, that the response indicates to the device that the feed is no longer available and the device should STOP requesting it? Some other things we've tried include:
- Returning a variety of HTTP status codes (302, 301, 500, etc)
- Setting a very long TTL on the feed
None of that seems to have any effect. It seems like there should be a way to return an empty response with an HTTP status code of 410 "Gone" and the device / program should know what to do. Any / all suggestions are appreciated!