Upgrade to Pro — share decks privately, control downloads, hide ads and more …

繰り返し予定に「出欠」を足す

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for ちぇる ちぇる
October 13, 2026
99

 繰り返し予定に「出欠」を足す

Avatar for ちぇる

ちぇる

October 13, 2026

Transcript

  1. 291万行が、これだけ DTSTART;TZID=Asia/Tokyo:20260919T090000 RRULE:FREQ=DAILY — 開始日時。 TZID でタイムゾーンを持つ FREQ — 繰り返しの単位。

    DAILY / WEEKLY / MONTHLY / YEARLY INTERVAL / BYDAY — FREQ=WEEKLY;INTERVAL=2;BYDAY=MO で隔週の月曜 UNTIL / COUNT — 終了日 / 回数。この例には無い = 終わらない DTSTART 14
  2. レコードが2件増える before • ─ • ─ • ─ • ─

    • 1レコード(RRULE) after • ─ • ─ ✕ ─ • ─ • • 除外を1件 10:00 を1件 — 「9:00 の回は出さない」 calendar_events — 10:00 の予定そのもの。新しく作られる 元の繰り返しレコードは、変更されない calendar_event_exceptions 18
  3. 「この日以降」編集 系列を2つに割る before after • ─ • ─ • ─

    • ─ • • ─ • • ─ • ─ • 元のレコード(until_at を切り詰め) 新しいレコードを1件 22
  4. 「すべて」編集 分割された状態から、1レコードに戻す before after • ─ • ─ ✕ ─

    • ─ • • • ─ • ─ • ─ • ─ • 元のレコードを直接更新 分割レコードと exceptions は全削除 23
  5. 参加者ごとに、分割する? Aさんが1回休む Bさんが1回休む Cさんが1回休む • ─ • ─ ✕ ─

    • ─ • • ─ ✕ ─ • ─ • ─ • • ─ • ─ • ─ ✕ ─ • +2レコード +2レコード +2レコード … × 参加者の数 27
  6. 出欠は独立テーブルで持つ calendar_event_attendance_responses 持つのは3つだけ — いつからの回答か scope — その回だけか、それ以降もか( this_only /

    this_and_following ) status — 参加 / 不参加 「未回答」はレコードが無いことで表す effective_from 30
  7. どの回も、ちょうど1つに決まる Aさんの回答は、この3件だけ 9/28 10/5 10/12 10/19 10/26 11/2 • •

    • • • • シリーズ ① 参加(この日以降) ② 不参加(この日以降) ③ 参加(この日だけ) ▼ 結果 未回答 参加 参加 不参加 参加 不参加 32