SCALE — Build Lab
機能パターン · REACT COMPONENT

繰り返し予定(RRULE)

CATEGORY機能パターン TYPEReact Component EFFORT60〜120分 DIFFICULTY
PRIMARY CODE
ts
import { RRule, Frequency } from 'rrule';

// 毎週月・水・金、10回まで
const rule = new RRule({
  freq: Frequency.WEEKLY,
  byweekday: [RRule.MO, RRule.WE, RRule.FR],
  dtstart: new Date(2026, 4, 1),
  count: 10,
});

const dates = rule.all(); // Date[]
const ruleStr = rule.toString(); // 'DTSTART:... RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10'

// 文字列から復元
const rule2 = RRule.fromString(ruleStr);
DEPENDENCIES
rrule
前提条件
Tailwind CSS v4TypeScript 5
USE CASES
  • 任意のダッシュボードに組み込み

繰り返し予定(RRULE)

:LiTarget: 用途

iCal RRULE準拠の繰り返しルール(毎週月曜・隔週など)を解釈・生成。

:LiSparkle: 特徴

  • RRULE生成
  • 日付展開
  • 例外日除外
  • iCal互換

:LiCode: コード(コピペ用)

import { RRule, Frequency } from 'rrule';

// 毎週月・水・金、10回まで
const rule = new RRule({
  freq: Frequency.WEEKLY,
  byweekday: [RRule.MO, RRule.WE, RRule.FR],
  dtstart: new Date(2026, 4, 1),
  count: 10,
});

const dates = rule.all(); // Date[]
const ruleStr = rule.toString(); // 'DTSTART:... RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10'

// 文字列から復元
const rule2 = RRule.fromString(ruleStr);

:LiHandPointer: 使い方

対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。

:LiAlertCircle: 注意事項

  • 依存パッケージを忘れず追加