A única maneira que encontrei é não usar autenticação, mas uma URL longa contendo um hash aleatório, como:
https://example.org/somepath/calendarname-averylonghashtoavoidpiracy.ics
Isso é semelhante aos "URLs particulares" usados pelo Google Agenda ou pelo Dropbox ao compartilhar. Não é perfeito, mas ainda é melhor do que um URL fácil de adivinhar.
Você pode usar links simbólicos (ou aliases) no servidor para fazer esse hash apontar para o seu arquivo. Isso também permite que você tenha hashes diferentes para clientes diferentes e aumente a segurança, pois você pode revogar um hash se for comprometido enquanto mantém os outros.
O HTTPS (disponível gratuitamente por meio de, por exemplo, Let's Encrypt) é recomendado, é claro, se sua agenda contiver material confidencial.