同様の不具合に遭遇しましたが、私は別の方法を取りました。カレンダーAPIエンドポイントを直接利用するのではなく、私のインポーターは[event] BBCodeを構築し、それをDiscourseに投稿します。これにより、プラグインがスタッフユーザーが手動でイベントを作成したかのように解析します。その結果、include_expiredのような一時的なクエリパラメータへの依存を回避でき、より安定した契約を得られます。プレーンな投稿とBBCodeは、予告なく変更される可能性が低いです。
[event start="2025-09-29 09:00" end="2025-10-29 10:00" location="Office B1"]
Discourse RESTful APIについて話し合う会議
[/event]
トレードオフとして、こちら側でより多くの作業が必要になります。ICSデータを適切にエスケープされた[event]タグに変換し、終日イベントと時間指定イベントを処理するフォーマッターを書く必要がありました。しかし実際には、このアプローチはアップグレードを通じてはるかに回復力があります。これは、アップストリームの非推奨通知の必要性をなくすものではありません(オプションが削除されたときにAPIがすぐに失敗するか、少なくとも警告を発することを望みます)が、スクリプトがサイレントに壊れるリスクを軽減しました。