📆

VRChatAPI経由でCalendar Eventを作成する時の落とし穴

に公開

問題

VRChat API Specification (非公式)の "Create a calendar event" では、以下のように例を上げています(1.20.7, 2026/2/6現在)

curl -X POST "https://api.vrchat.cloud/api/1/calendar/grp_00000000-0000-0000-0000-000000000000/event" \
  --cookie "auth=" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Performance Event!",
    "startsAt": "2019-08-24T14:15:22Z",
    "description": "string",
    "endsAt": "2019-08-24T14:15:22Z",
    "category": "performance",
    "sendCreationNotification": false,
    "accessType": "public"
  }'

(Cookieなどはもちろん必要ですが)しかし、このようにPOSTすると、イベント自体は問題なく作成されますが、カレンダー画面( https://vrchat.com/home/calendar )には表示されません。

原因探し

同時期にGroupのページからもイベントが見えなかったり、削除できなかったりでしたので、おそらくVRChat側の問題でしょうと思いました。

https://feedback.vrchat.com/website/p/calendars-are-glitched-events-not-showing-up-on-groups-past-events-are-not-remov

しかし、このIssueが修正された後でも、カレンダーにも表示されませんでした。

手動でWeb側で作ったものは問題なく表示されますので、DevToolsで実際のRequestを確認したところ、

  "isDraft": false
  "featured": false

とありました

そういえばイベント実装された当初は「下書き」という概念がありましたので、もしかしたらそれが原因だったかもしれません

解決策

VRChatAPIを使う場合、isDraftfeaturedを明示的にFalseと設定する必要がある。
featuredはおそらく公式イベント用のフラグ?)

Discussion