I'd probably implement it as a simple .ashx IHttpHandler and pass a query string params as you plan.
You can find examples of .ashx serives under Web/Services in the source code, CKEditorTemplate.ashx for example returns json, but you could return ical data.
Probably what I would try at first is just making the .ashx read the static file from disk and write it to the response. Verify it looks right in the browser and then try it with devices.
You may want to verify whether that is really the right mime type, if it does not work with a static file then it probably won't work with a service either unless the reason it does not work is something about caching, you could get more control over caching from the .ashx and try disabling all caching and see if that makes any difference.
Then after you get it working with static content, add logic to get the data from the db instead.
Hope it helps,
Joe