---
{
  "id": "platform.calendar.recurring-and-instances",
  "topic": "calendar",
  "title": "行事曆週期事件與 instance",
  "locale": "zh-TW",
  "version": "2026-08-12",
  "summary": "Calendar 週期事件使用受限 RRULE、穩定 instanceId，且 this、thisAndFuture、all 有不同生命週期語意。",
  "content": "`rrule` 只能在建立事件時設定。FREQ 僅支援 DAILY、WEEKLY、MONTHLY、YEARLY；組件支援 FREQ、INTERVAL、COUNT、BYDAY、BYMONTHDAY、BYSETPOS、BYMONTH、UNTIL。BYHOUR、WKST 等會回 `invalid_arguments`。update action 不公開 `rrule`。DST 與當地 wall-clock 展開由 RRULE engine 決定，不得自創五欄 cron expression。\n\noccurrence 的 ID 是 `<parentUUID>_<YYYYMMDDTHHMMSSZ>`，時間為原始開始點的 UTC。list/get 會回 `isRecurringInstance`、`recurringEventId`、`originalStart`、`instanceId`。傳 instance-form eventId 或 `updateScope` 會進 recurring path；`this`、`thisAndFuture` 必須使用 instanceId，`all` 可使用父 UUID。instance 操作若缺 scope，應補上意圖對應的 scope 後重試。\n\nupdate `this` 會在父事件加 EXDATE，並建立有自己 UUID 的 exception row；`thisAndFuture` 以 UNTIL 截斷舊 series 並建立新 series，後續要使用新 ID；`all` 直接改父事件。delete `this` 加 EXDATE，`thisAndFuture` 截斷 UNTIL，`all` soft-delete 整串。exception 未覆寫 reminder 時沿用父事件 reminders。\n",
  "aliases": [
    "週期事件",
    "重複事件",
    "單次 instance",
    "RRULE",
    "instanceId",
    "updateScope",
    "deleteScope",
    "從這次起"
  ],
  "tags": [
    "calendar",
    "rrule",
    "recurrence"
  ],
  "relatedActions": [
    "arinova.calendar.list_events",
    "arinova.calendar.get_event",
    "arinova.calendar.create_event",
    "arinova.calendar.update_event",
    "arinova.calendar.delete_event"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/zh-tw/kb/calendar/recurring-and-instances/"
}
---

`rrule` 只能在建立事件時設定。FREQ 僅支援 DAILY、WEEKLY、MONTHLY、YEARLY；組件支援 FREQ、INTERVAL、COUNT、BYDAY、BYMONTHDAY、BYSETPOS、BYMONTH、UNTIL。BYHOUR、WKST 等會回 `invalid_arguments`。update action 不公開 `rrule`。DST 與當地 wall-clock 展開由 RRULE engine 決定，不得自創五欄 cron expression。

occurrence 的 ID 是 `<parentUUID>_<YYYYMMDDTHHMMSSZ>`，時間為原始開始點的 UTC。list/get 會回 `isRecurringInstance`、`recurringEventId`、`originalStart`、`instanceId`。傳 instance-form eventId 或 `updateScope` 會進 recurring path；`this`、`thisAndFuture` 必須使用 instanceId，`all` 可使用父 UUID。instance 操作若缺 scope，應補上意圖對應的 scope 後重試。

update `this` 會在父事件加 EXDATE，並建立有自己 UUID 的 exception row；`thisAndFuture` 以 UNTIL 截斷舊 series 並建立新 series，後續要使用新 ID；`all` 直接改父事件。delete `this` 加 EXDATE，`thisAndFuture` 截斷 UNTIL，`all` soft-delete 整串。exception 未覆寫 reminder 時沿用父事件 reminders。
