ヘルプ
DotCalendar の使い方とよくある質問
はじめに
DotCalendar は Google カレンダー連携の日程調整ツールです。社内メンバーは候補を用意し、 先方は日程調整リンクからログインせずに日時を確定できます。
/events/new から候補日時を入力 (または「自動生成」) し、日程調整リンクを発行します。
- 2. リンクを先方へ送る
発行された日程調整リンクを Slack やメールで先方へ送ります。ログインは不要です。
- 3. 先方が日時を選ぶ
候補から日時を1件選び、ご連絡先を入力して内容を確認します。
- 4. 日程が確定
先方が確定すると、Google カレンダーへの予定登録・Meetリンク・招待メールが自動で処理されます。
機能一覧
複数カレンダー連携
primary + 共有/転送カレンダーから busy をまとめて検出
通常時の空き時間 + 臨時上書き
曜日別ルール + 特定日の上書き (Google Calendar 互換)
予約受付期間 / バッファ / 1日上限
○日前〜○時間前まで受付 / busy 前後にバッファ / 1日 N 件まで
投票締切 + 隠れ投票
締切後はロック / Hidden Poll で他者の票を非公開
予約フォームのカスタム項目
会社名 / フリーテキスト / 選択肢などを参加時に必須化
Webhook + Add to Calendar
確定/キャンセルで外部 URL に POST / 4 サービスへの 1 クリック追加
よくある質問
キーワード検索可- 参加者は Google アカウントが必要ですか?
- いいえ。先方はログイン不要です。日程調整リンクを開き、日時と連絡先を入力するだけで確定できます。Google ログインが必要なのは社内の作成者だけです。
- 「カレンダー一覧の取得に失敗しました」と表示されます
- Google OAuth に必要なスコープ (calendar.readonly) が付与されていません。/status から「Google を再連携」を押し、同意画面で「Google カレンダーの表示」も許可してください。Google Cloud Console 側の OAuth 同意画面の Scopes に `calendar.readonly` が登録されていない場合は、まずそちらに追加が必要です。
- busy (予定あり) が週プレビューに反映されません
- 選択カレンダーが 1 つもチェックされていない、または週プレビュー範囲外の予定の可能性があります。前週/次週ボタンで切り替えると対象週の busy が再取得されます。手動で再取得したい場合は週プレビュー右上の更新ボタン (RefreshCw アイコン) を押してください。
- 予定の色やタイトルが反映されません
- 色は per-event の colorId (Google Calendar 標準 11 色) > calendar の backgroundColor の優先順位で解決されます。タイトルは events.list の summary。visibility=private なら「(非公開)」表示。transparency=transparent (Free) の予定や、自分が「不参加」と回答した予定は busy 扱いから除外されます。
- 「この予定の上には会議を入れて良い」をタイトルで指定できますか?
- はい。/events/new または管理画面の「予定タイトルによる busy 判定」で、タイトルのプレフィックスごとに「空き扱い」/「予定あり扱い」を登録できます (あなた個人の設定で、自分が主催する全イベントに適用されます)。例えば「[空き]」を空き扱いにすると「[空き] 作業ブロック」の時間帯も候補に出せます。逆に「[出張]」を予定あり扱いにすると、Google 側で「予定なし (free)」の予定でも塞げます。判定は前方一致で、大文字小文字・全角半角は区別しません。同じ予定に free と busy の両方がマッチした場合は安全側の「予定あり」を優先します。ルールを 0 件にすれば従来の判定に戻ります。
- 非公開 (private) の予定もタイトルルールの対象になりますか?
- 自分がアクセスできるカレンダーであれば、非公開予定でもタイトルで判定されます (判定結果は空き/予定ありだけで、タイトルが日程調整リンクに出ることはありません)。一方、freeBusyReader 権限でしか共有されていないカレンダーの予定はタイトル自体を取得できないため、ルール適用外=従来どおり「予定あり」として扱われます (安全側のフォールバック)。
- 確定後に Google Meet リンクが添付されません
- イベント作成時に「確定時に Google Meet リンクを自動生成して招待に添付する」チェックを ON にしてください (/events/new)。OFF の場合は通常の予定だけ作成されます。
- Webhook には何が送られますか?
- `event.confirmed` または `event.canceled` を `type` に持つ JSON が POST されます。`event` フィールドに `id / publicSlug / title / status / confirmedSlot.startAt/endAt / meetingUrl` が含まれます。Slack の incoming webhook URL や n8n / Zapier の webhook trigger に渡せます。
- Webhook ペイロードの改ざん検知 (署名) はできますか?
- はい。サーバ環境変数 `WEBHOOK_HMAC_SECRET` を設定すると、全ての Webhook 送信時に `X-Meetly-Signature: sha256=<hex>` ヘッダが付きます。受信側で同じ secret を使い `HMAC-SHA256(rawBody, secret)` を再計算して照合してください。GitHub / Stripe / Slack の慣行と同じ形式です。
- Webhook の送信失敗はどう確認できますか?
- Webhook は best-effort 送信で、失敗時はサーバーログに `[event.confirm] webhook failed:` / `[event.cancel] webhook failed:` のエラーが出ます。タイムアウトは 5 秒です。Webhook URL を打ち間違えても確定/キャンセル自体は成功します。
- 投票締切を過ぎた後はどうなりますか?
- サーバ側で投票を弾きます (BAD_REQUEST)。締切日時は (UTC) で評価され、それ以降は upsertMany が失敗します。主催者は通常通り確定 / キャンセルできます。
- 隠れ投票 (Hidden poll) って何ですか?
- ON にすると、参加者は他の参加者の票を見られなくなります。集計 (yes / maybe / no カウント) も表示されません。主催者だけが集計を確認できます (Doodle の有料機能相当)。
- 参加者が自分の参加を取り消したい
- 投票後に表示される「マイページ」リンク (/p/[secretToken]) から「参加を取り消す」が押せます。投票も同時に削除されます。
- イベントを iCal で配信できますか?
- はい。各日程調整リンクの `/events/[slug]/ical` でダウンロードできます。確定済みは 1 件、未確定は候補を TENTATIVE として、キャンセル済みは CANCELLED として返します。
- QR コードはどこで取得できますか?
- 管理画面 (/events/[slug]/manage) の「日程調整リンク」カード右側に表示されます。スマホでスキャンすると先方が見るページを開けます。PDF / 印刷物に貼るときに便利です。
- 「この時間で確定」を間違って押してしまいました
- 確定時は確認ダイアログが出るので、誤って押した場合は「キャンセル」を選んでください。すでに確定済みなら「イベントをキャンセル」でステータスを canceled に変更できます。Google カレンダー上の予定は自動削除されないので、必要なら手動で削除してください。
- 週プレビューの赤い線は何ですか?
- 「今」を示す現在時刻ラインです (Google Calendar 互換)。表示週内 + 表示時間内 (default 7-22 時) のときだけ表示されます。1 分ごとに自動更新されます。
- 日程調整リンクから社内の予定が漏れませんか?
- 日程調整リンクには Google FreeBusy 相当の「空き/予定あり」の判定だけを使い、予定タイトルや詳細は表示しません。また、表示範囲は候補スロット範囲 ±7 日に限定しています。
- キーボードショートカットはありますか?
- 「?」キーで一覧モーダルが開きます。n=新規作成 / e=日程調整リンク一覧 / h=ヘルプ など。フォーム入力中は無効です。
- サンプルイベントを試したい
- /events の空状態から「サンプルから作る」を押すと、タイトル/説明/直近の平日 9 候補スロットが入った状態で /events/new?sample=1 が開きます。そのまま日程調整リンクを作成しても、内容を編集してから作成しても構いません。
#参加者#ログイン#認証#匿名#anonymous
#OAuth#scope#再連携#401#insufficient
#週プレビュー#更新#リフレッシュ
#色#タイトル#private#公開設定#colorId#不参加#decline
#タイトル#プレフィックス#ルール#busy#空き扱い#prefix#命名規則
#private#非公開#タイトル#freeBusyReader#共有カレンダー
#Meet#ビデオ会議#リンク
#Webhook#Slack#n8n#Zapier#通知
#Webhook#署名#HMAC#セキュリティ
#Webhook#失敗#タイムアウト#ログ
#投票#締切#deadline
#隠れ投票#Hidden poll#プライバシー#Doodle
#参加取り消し#マイページ#secretToken
#iCal#.ics#Apple Calendar#Outlook
#QR#QRコード#スマホ
#誤操作#確定#ロールバック
#現在時刻#now#ライン
#プライバシー#日程調整リンク#FreeBusy
#ショートカット#キーボード#アクセシビリティ
#サンプル#デモ#お試し
オンボーディング
一度閉じた「ようこそ画面」を再表示できます。
セキュリティと連絡先
DotCalendar (dev) は社内テストユーザー限定で稼働しています。Google から取得した access/refresh token は 自社管理の PostgreSQL に暗号化保存され、サインアウト時に削除されます。 バグ報告 / 機能要望は /status ページから連絡してください。