No caso de disciplinas que têm dois horários no mesmo dia (veja exemplo abaixo), o arquivo .ics gerado usa o mesmo UID para ambos os horários da disciplina. Como pode ser visto em um validador de ICS, isso é uma violação da RFC 5545 e programas como o Google Calendar consideram apenas um dos eventos com o UID duplicado, ignorando o outro.
Sugestão de solução
Atualmente, os UIDs gerados possuem esta cara: MAE0330T2023246DMO@bcc.ime.usp.br. Acho que a lógica é <nome disciplina>T<turma>D<dia da semana>, o que gerará UIDs duplicados no caso de uma disciplina com dois eventos no mesmo dia.
Minha proposta (veja: matrusp#99) é adicionar o horário da disciplina no formato, gerando algo como MAE0330-T2023246-MO-13:00Z-14:40Z@localhost, onde o formato é <disciplina>-T<turma>-<dia da semana>-<HH:MM>Z-<HH:MM>Z@<host>. (O 'Z' indica um fuso horário UTC.)
O documento do padrão RFC sugere um formato de <data><hora><outro identificador>@<host>, o que parece condizente com a proposta.
Problema
No caso de disciplinas que têm dois horários no mesmo dia (veja exemplo abaixo), o arquivo .ics gerado usa o mesmo UID para ambos os horários da disciplina. Como pode ser visto em um validador de ICS, isso é uma violação da RFC 5545 e programas como o Google Calendar consideram apenas um dos eventos com o UID duplicado, ignorando o outro.
Sugestão de solução
MAE0330T2023246DMO@bcc.ime.usp.br
. Acho que a lógica é<nome disciplina>T<turma>D<dia da semana>
, o que gerará UIDs duplicados no caso de uma disciplina com dois eventos no mesmo dia.MAE0330-T2023246-MO-13:00Z-14:40Z@localhost
, onde o formato é<disciplina>-T<turma>-<dia da semana>-<HH:MM>Z-<HH:MM>Z@<host>
. (O 'Z' indica um fuso horário UTC.)<data><hora><outro identificador>@<host>
, o que parece condizente com a proposta.