Это просто. Webcal - не настоящий протокол.
При нажатии на ссылку, что это "webcal://"
адрес, браузер решает, что запрос HTTP, а потому, что это был "webcal://"
адрес, браузер знает, что это календарь подписки и будет пытаться добавить подписку на любое программное обеспечение, у вас есть что поддерживает это (например, Outlook).
Для того, чтобы это сработало, вам просто нужно изменить адрес ссылки с "http://yoursite.com/youricsfile"
на "webcal://yoursite.com/youricsfile"
и позволить обозревателю или устройству справиться с остальными!
EDIT
Больше информации от wikipedia ...
Приставка WebCal протокол используется для триггера внешний обработчик протокол, который передается URL из .ics файла, а не передавая загруженное содержимое файла, во многом так же, как иногда используется канал для запуска внешних RSS-ридеров. Идея состоит в том, что с этим префиксом протокола целевой файл должен быть подписан, а не импортирован в приложение календаря, как это происходит при простой загрузке.