SchedTool
SchedToolは、Discordサーバー内で日程調整、参加可否の集計、開催日通知を行うためのBotです。
日程調整の流れ
- 管理者が最初に
/setupを実行し、通知チャンネル、イベント名、日数を設定します。 - 管理者が
/scheduleで開始日を指定し、日程調整を作成します。 - Botがチャンネルに日程範囲ボタンを表示します。
- 参加者は対象の日程ボタンを押し、自分だけに表示される画面で
◎△×を選びます。 - 通知チャンネルには、日付ごとの参加可能人数と保留者、開催確率が表示されます。
月間日程表ボタンを押すと、押した人だけに全員の入力状況が表示されます。- 締切を過ぎると、対象の日程範囲は自動的に回答できなくなります。
参加者向けの使い方
日程を回答する
チャンネルに表示された日程範囲ボタンを押すと、自分だけに回答画面が表示されます。各日程について、参加可能なら ◎、保留なら △、不参加なら × を押します。
月間日程表を見る
月間日程表 ボタンを押すと、押した人だけに全員の入力状況が表示されます。表示はメンバーごとの固定アイコンで行われ、24人を超える場合はページを切り替えられます。
自分のアイコンを設定する
/my_icon icon:🍎 のように実行すると、月間日程表で使う自分のアイコンを設定できます。他のメンバーが使用中のアイコンは指定できません。
管理者向けの初期設定
- 最初に
/setupを実行すると、現在の設定を見ながら初期設定を進められます。 - Discordサーバー内に、日程調整用チャンネルと通知用チャンネルを分けて作っておくと運用しやすくなります。
- 通知用チャンネルを未設定のまま使い始めた場合は、最初に日程調整を作成したチャンネルが通知先になります。
/setupから通知チャンネル、イベント名と日数、回答締切、開催日通知、メンション設定を変更できます。- 参加予定者ロールは任意です。対象が24人を超える場合は、
/setupの一番下から設定することを推奨します。 - 管理者向けコマンドは、Discord上でも管理者権限のあるメンバーにだけ表示されるように設定されています。
- 定期的に作成したい場合は、まず同じイベント名で1回手動作成してから
/auto_schedule_startを実行します。
主なスラッシュコマンド
| コマンド | 対象 | 内容 |
|---|---|---|
/setup |
管理者 | 現在の設定を表示し、基本設定を画面上から変更します。 |
/schedule_setting |
管理者 | イベント名と1回で調整する日数を設定します。 |
/schedule |
管理者 | 開始日を指定して日程調整を作成します。 |
/auto_schedule_start |
管理者 | 指定したイベント名の最新の日程調整を基準に、次回分から自動作成を開始します。初回だけは同じイベント名で手動作成が必要です。 |
/auto_schedule_stop |
管理者 | 日程調整の自動作成を停止します。 |
/close |
管理者 | 指定したイベントの日程調整を手動で終了します。 |
/delete |
管理者 | 指定したイベントを削除します。 |
/notification_channel_setting |
管理者 | 集計や通知を送るチャンネルを設定します。 |
/participant_role_setting |
管理者 | 日程調整の対象にするロールを設定します。 |
/participant_role_clear |
管理者 | 参加予定者ロールを解除し、Bot以外の全メンバーを対象に戻します。 |
/notification_mention_setting |
管理者 | 開催日通知でメンションするかどうかを設定します。 |
/reminder_setting |
管理者 | 開催日通知のタイミングを設定します。一言コメントは /setup から設定します。 |
/deadline_setting |
管理者 | 回答締切のデフォルトを設定します。 |
/custom_announce |
管理者 | 日程調整とは別に、任意のイベント告知を通知チャンネルへ予約します。 |
/admin_status |
管理者 | Bot設定や未回答者の状況を確認します。 |
/list |
全員 | 作成済みイベントの一覧を実行者だけに表示します。 |
/my_icon |
全員 | 月間日程表で使う自分のアイコンを設定します。 |
通知について
開催日通知は、設定した日時に通知チャンネルへ送信されます。対象者全員が予定を入力済みで、かつ × が1人もいない場合に通知されます。
△ は参加確率50%として扱い、保留者と開催確率を通知に表示します。
参加予定者ロールを設定している場合は、開催日通知でそのロールをメンションします。ロールはDiscord側でメンション可能にしてください。
設定中のロールが削除された場合は、自動作成と通知を停止し、再設定が必要であることを通知します。
イベント作成後にサーバーへ参加した人や対象ロールへ追加された人には、毎日の通知設定時刻に回答募集中であることを1回案内します。
通知タイミングは /reminder_setting、一言コメントは /setup で変更できます。
日程調整と関係ない告知を予約したい場合は、/custom_announce を使用します。
締切について
回答締切の初期値は、各日程の1日前0時です。その時刻以降に、対象の日程範囲ボタンが自動で無効化されます。
管理者は /deadline_setting で、今後作成する日程調整の締切デフォルトを変更できます。
開始日が当日の範囲は例外として、当日23:59まで回答できます。
運用ログについて
SchedToolは、起動状況、サーバー数、回答数、DBサイズ、通知処理件数、エラー内容などを運用ログとして保存できます。
Botトークン、環境変数、メッセージ本文、DM内容はログに出さない設計です。
ログはWeb公開ディレクトリに置かず、VPS内やDocker volume内など管理者だけが確認できる場所に保存してください。