Discord 日程調整ツール(固定ボス)|スプレッドシートで毎週の参加日時を自動集計(無料配布)
配布先
どんなツール?

固定ボスの管理を少しでも楽にしたくて、私が作った日程調整ツールです。スプレッドシートとDiscordをいくつか設定するだけで使えて、料金はかかりません。
できることは、ざっとこのあたりです。毎週、指定した曜日にDiscordへ入力をうながす通知が飛び、全員が調整さん(日程入力)を終えると主催者へDiscord上で通知が届きます。日付やチェック欄は毎週自動で更新されるので、こちらでチェックを消したり日付を打ち直したりする必要はありません。
日程調整ツールはほかにもありますが、どれも日程表は手で作る前提だったので、その部分まで自動化したくて自分で組みました。
毎週だいたい同じ時間帯(19〜24時のどこかで合わせる、といった具合)でボスに行っている方なら、日程表づくりやメンバーへの入力のお願い、全員がチェックを入れたかの確認といった細かい手間が省けます。
使い方
ここから使い方をまとめます。
見出しの末尾に(管理者のみ)とついている項目は、自動化するための前準備です。主催者だけが行えば大丈夫なので、参加メンバーの方は飛ばして、❺からご覧ください。
❶スプレッドシートをコピー(管理者のみ)

下記スプレッドシートのリンクをクリックし「コピーを作成」を押してください。
❷シート「Input」の情報を埋める(管理者のみ)
スプレッドシートの一覧画面に戻り「スケジュール調整ツール」を開きます。
そのままシート「Input」を開いて、下記のように項目を埋めてください。
| 編集不要 | 必要に応じて書き換える |
|---|---|
| PTメンバーの数 | 2~6で選択 |
| 通知先は? | @everyone ※特別な理由がなければそのまま |
| 主催は? | <@555039513186009108> ※主催のメンションIDを入力(調べ方は後述) |
| スプレッドシートURL | スプレッドシートのURLを入力(https://~) |
| webhookurl | DiscordのウェブフックURLを入力 ※作り方は後述 |
通知先について
固定メンバーだけのDiscordサーバーを使っているなら「@everyone」で問題ないと思います。一方で、ギルドのDiscord内にボス固定用のチャンネルを作っていて、特定のメンバーにだけメンションを送りたい、というケースもあるかもしれません。
その場合は、固定メンバーだけを含むロール(メンバーのグループ)を作り、それを通知先に設定してください。
ロール宛にメンションを送るには、ロールのメンションIDが必要です。Discordでメンションを入力したあと、送信する前に頭に「\(バックスラッシュ)」を打つと、IDを確認できます。

チャンネルをプライベートにして該当メンバーだけを招待すれば、「@everyone」でも特定のメンバーにしかメンションが飛びません。サーバーの運用ルールにあわせて選んでみてください。
主催について

全員の日程入力が終わると、主催者へ完了の通知が飛びます。そのとき、全員が参加できる日時もあわせて届きます。ここはその通知を受け取るための設定です。
個人へメンションを送るためのID取得方法は、さきほどのロール宛のときと同じです。Discordでメンションを入力したあと、送信する前に頭に「\(バックスラッシュ)」を打つと確認できます。

webhookurlの取得方法
スプレッドシートの内容をDiscordへ送るための設定です。ウェブフックは、外部からDiscordへ自動でメッセージを投稿するための仕組みだと思ってください。

通知を送りたいチャンネルの「チャンネルの編集」をクリックします。

編集画面が開いたら「連携サービス」をクリック。

続いて「ウェブフックを作成」をクリックします。

ウェブフックが自動で作られるので、クリック。

「ウェブフックURLをコピー」を押して、スプレッドシートの該当セルへ貼り付けてください。名前や画像はそのままで問題ありません。
❸トリガー設定を行う(管理者のみ)
スプレッドシート側の自動化を設定します。トリガーは、決まった条件で関数(処理)を自動で動かす仕組みです。

Apps Script(GASの設定画面)へ移動します。

トリガーをクリックし、右下の「トリガーを追加」から、5つの関数のトリガーを追加していきます。下の表の通りに設定してください。
date_plus
| 実行する関数を選択 | date_plus |
| デプロイ時に実行 | Head |
| イベントのソースを選択 | 時間主導型 |
| 時間ベースのトリガーのタイプを選択 | 週ベースのタイマー |
| 曜日を選択 | 毎週木曜日 |
| 時刻を選択 | 午前0時~1時 |
| エラー通知設定 | 毎日通知を受け取る |
checkbox_erase
| 実行する関数を選択 | checkbox_erase |
| デプロイ時に実行 | Head |
| イベントのソースを選択 | 時間主導型 |
| 時間ベースのトリガーのタイプを選択 | 週ベースのタイマー |
| 曜日を選択 | 毎週木曜日 |
| 時刻を選択 | 午前0時~1時 |
| エラー通知設定 | 毎日通知を受け取る |
notice_for_everyone
| 実行する関数を選択 | notice_for_everyone |
| デプロイ時に実行 | Head |
| イベントのソースを選択 | 時間主導型 |
| 時間ベースのトリガーのタイプを選択 | 週ベースのタイマー |
| 曜日を選択 | 毎週木曜日 |
| 時刻を選択 | 午前1時~2時 |
| エラー通知設定 | 毎日通知を受け取る |
notice_to_sponsor
| 実行する関数を選択 | notice_to_sponsor |
| デプロイ時に実行 | Head |
| イベントのソースを選択 | スプレッドシートから |
| イベントの種類を選択 | 編集時 |
| エラー通知設定 | 毎日通知を受け取る |
checkbox_all
| 実行する関数を選択 | checkbox_all |
| デプロイ時に実行 | Head |
| イベントのソースを選択 | スプレッドシートから |
| イベントの種類を選択 | 編集時 |
| エラー通知設定 | 毎日通知を受け取る |
❹試しに関数実行(管理者のみ)

スプレッドシートの「はじめに…」シートにチェックボタンがあるので、そこをクリックしてみてください。
はじめてスクリプトを実行するときは、Google側から許可を求められることがあります。その場合は、下の画像のように進めてください。
承認が必要です、とポップアップがでたら

「権限を確認」をクリック。

スクリプトを動かすGoogleアカウントをクリック。

「詳細を表示」をクリックしてから、「◯◯(GASのプロジェクト名)に移動」をクリック。

「許可」をクリックすると、スクリプトが実行されます。ここまで動けば、設定はうまくいっているはずです。通知が飛んでこない、といったことがあれば、❷に戻ってもう一度確認してみてください。
なお、シートや列、行を削除すると正常に動かなくなります。ここはいじらないようにしてください。もし壊れてしまったときは、お手数ですが❶のコピーからやり直しをお願いします。
❺日程調整ツールを実際につかってみる
ここからが実際の使い方です。管理者以外のメンバーは、ここからご覧ください。

player.1〜6までの縦1列が、メンバーごとの入力範囲です。player.1〜6の部分は、固定ボスのメンバーの名前に打ち替えてください。
操作は上の画像の通りで、いける日時のチェックボックスにチェックを入れ、入力が終わったら名前の下のチェックボックスを押すだけです。
どの日程でも大丈夫という方は、オレンジ色で網かけされたチェックボックスを押すと、全日程にチェックが入ります(少し時間がかかります)。
さいごに
気の合うメンバーとわいわいボスに行くのが好きで、3年ほど固定の主催を続けています。
ただ、運用する側に回ると、日程調整やドロップアイテムの分配といった細かい作業もついてきます。一つひとつは大した手間ではないのですが、毎週となると少しずつ気が重くなってきて。ボスそのものを楽しみたくて作ったのが、今回の日程調整ツールでした。
以前は一部の上位プレイヤーしか挑めなかった高難易度ボスも、イベントやアップデートでの強化、経験値テーブルの見直しによってレベル上げのハードルが下がり、挑めるプレイヤーが増えてきたように思います。
これから固定を作る方や、いま主催をしていて運用の負担を感じている方が、このツールで少しでも手間を減らして、ボスそのものを楽しめるようになったら、私としてはうれしいです。
使い方で分かりづらいところがあったり、うまく動かないことがあれば、Xやゲーム内チャット、Discordなどで声をかけてもらえると助かります。
よきゲームライフを。