物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Office 365 カレンダーに予定を追加するURLリンクを作る

どうも、公式ドキュメントはないようだ。

基本URL

Microsoft Office 365 カレンダーの場合は
https://outlook.office.com/calendar/action/compose?

Outlook カレンダーの場合は
https://outlook.live.com/calendar/action/compose?

ウェブエンジニアにはおなじみだが、URLの後ろに以降で説明するパラメータを https://outlook.office.com/calendar/action/compose?パラメータ名1=パラメータ値1&パラメータ名2=パラメータ値2 という感じで付ける。

Microsoft Office 365 カレンダーの場合のURL例

Outlook カレンダーの場合のURL例

パラメータ

startdt 開始日時

フォーマット: ローカルの時間を指定する場合 (2022-02-03T14:30:00) 、年月日を指定する場合 (2022-02-03) 、UTC基準で指定する場合 (2022-02-03T14:30:00Z)、時差込みで指定する場合 (2022-02-03T14:30:00+01:00)

例: startdt=2022-02-03T14:30:00

説明: イベントの開始日時を記述する。全日(allday)イベントの場合は年月日のみ指定する。

enddt 終了日時

フォーマット: ローカルの時間を指定する場合 (2022-02-03T15:00:00) 、以下startdtと同じ。

例: enddt=2022-02-03T15:00:00

説明: イベントの終了日時を記述する。startdtと同じ。

subject タイトル

フォーマット: 文字列

例: subject=%E4%BC%9A%E8%AD%B0

説明: イベントのタイトル。UTF-8でURL エンコード(符号化、変換)する必要がある。上記の例は会議。スペースは「%20」とする。

body 説明

フォーマット: 文字列

例: body=%E6%9C%AC%E6%96%87%3Cbr%3E%E6%94%B9%E8%A1%8C

説明: イベントの説明。URL エンコードする。改行が使えるが\nではなく<br>の%3Cbr%3E を使う。上の例は本文<br>改行

allday 全日フラグ

フォーマット: true / false

例: allday=true

説明: 全日イベントの場合は true 、そうでない場合は false にするか、パラメータ自体を省略する。

location 場所

フォーマット: 文字列

例: location=RIKEN

説明: URL エンコードする。

online オンラインフラグ

フォーマット: 何でも良いが1で。

例: online=1

説明: このパラメータを使うと、Outlook カレンダーの場合はSkype会議のトグルがONになり、Microsoft Office 365 カレンダーの場合の場合はTeams会議のトグルがONになる。オンラインイベントではない場合はパラメータを書かない。Skype会議以外、Teams会議以外にはできないので、bodyに接続情報を書くと良いだろう。

to 必須参加者のアドレス

フォーマット: 文字列

例: to=a@example.com,b@example.com

説明: 複数のメールアドレスを指定するときはカンマで区切る。

Office 365を会議室の予約に使っている場合は、会議室のメールアドレスをここに書いておくと、その会議室の予約用リンクを作成できる。

cc 任意参加者のアドレス

フォーマット: 文字列

例: cc=c@example.com,d@example.com

説明: 複数のメールアドレスを指定するときはカンマで区切る。

注意

Microsoftが想定しているリンクは以下のURL経由のようだ。

https://outlook.office.com/owa/?path=/calendar/action/compose

https://outlook.live.com/owa/?path=/calendar/action/compose

記事執筆時のリダイレクトの状況を見る限り、

https://outlook.office.com/calendar/action/compose?

https://outlook.live.com/calendar/action/compose?

で問題なさそうである。

記事を書いた経緯

記事執筆時に所属している某研究所ではMicrosoft Office 365のカレンダーを使えと言われている。しかし、不特定多数が参加できる公式イベントを予定表に追加するURLが提供されていないので不便だなと感じていた。indicoの一部のバージョンではGoogle カレンダーに予定を追加するURLリンクが提供されており、Microsoft Office 365でも同じようにリンクを作れるだろうと探したがすぐには見つからなかった。後述するちょっと参考にしたサイトを参考にURLを作っても動かず、正しい日本語ドキュメントの必要性を感じた次第である。

かなり参考にしたサイト

interactiondesignfoundation.github.io

idea.tostring.jp

ちょっと参考にしたサイト (時間指定方法が間違ってるので動かない)

qiita.com