Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 40 additions & 9 deletions en/on-call/configuration/schedule.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Understanding these concepts before configuration will help you better plan your
| **Override** | Temporarily adjust the on-call person for a specific time period without modifying permanent rules (commonly used for leave, temporary coverage) |
| **Date Mask** | Select which days to participate in on-call, e.g., Team A on-call Monday to Friday, Team B on weekends |
| **Continuous Rotation** | When enabled, rotation boundaries are calculated based on shift start time, preventing shifts from being split at 00:00. Only supported when date mask is configured. See [Date mask and continuous rotation](#date-mask-and-continuous-rotation) for details |
| **Fair Rotation** | The system automatically adjusts rotation order to ensure each member gets opportunities in different time periods, preventing someone from always being on-call during weekends |

![Schedule Concepts](https://docs-cdn.flashcat.cloud/images/png/3423a4f3133d5caa1f0aaebca970d404.png)

Expand All @@ -39,20 +40,39 @@ Understanding these concepts before configuration will help you better plan your
<Steps>
<Step title="Create a Schedule">
Go to **Schedule Management**, click "Create Schedule"
- **Schedule Name**: 1–40 characters, must be unique within the account
- **Owning Team**: Specifies which team manages this schedule; team members gain edit permissions for this schedule
- **Schedule Description**: Supports Markdown syntax, content can be included in notifications
- **Owning Team**: Specifies which team manages this schedule, not the on-call personnel
</Step>
<Step title="Set Notification Reminders">
To prevent forgetting shifts or handoffs, the system provides two reminder types:
- **Handoff Notification**: N minutes before rotation (e.g., 15 minutes ahead), notifies both the outgoing and incoming personnel
- **On-duty Notification**: During on-call periods, sends a daily notification at a fixed time (e.g., 9:00 AM) reminding who's currently on-call
- **Channels**: Supports email, SMS, phone, IM (Feishu/Lark, Dingtalk, WeCom)
<Step title="Set Shift Notifications">
To prevent forgetting shifts or handoffs, the system provides two notification triggers:
- **Advance Notification**: Notifies both outgoing and incoming personnel N minutes before handoff (in 5-minute increments)
- **Scheduled Notification**: Sends a daily notification at a fixed time (e.g., 8:00 AM) reminding who is currently on-call

After enabling either notification trigger, you need to configure notification channels:

- **Personal Channels**: Send notifications directly to on-call personnel
- **Follow personal preference**: Each responder receives notifications via their personally configured channels
- **Follow unified settings**: Administrators select notification channels (SMS, email, and integrated IM apps)
- **Group Chat Channels**: Send notifications to group chats, supporting the following platforms:
- Feishu app, DingTalk app, Slack app (select chat groups via integrated IM apps)
- WeCom bot, DingTalk bot, Feishu bot (send via webhook URL)
- Slack bot, Telegram bot, Zoom bot
</Step>
<Step title="Define On-call Rules">
This is the core step. You can add one or more layers of rules. Each layer includes:
- **On-call Personnel**: Select members participating in rotation
- **Rotation Cycle**: Supports day, week, custom duration
- **Time Restriction**: (Optional) This rule only takes effect during specific time periods

- **On-call Personnel**: Select members participating in rotation, supports grouping and primary/backup roles
- **Rotation Cycle**: Supports four units — hour, day, week, and month — with values from 1 to 30. For example, "2 days" means rotation every 2 days
- **Handoff Time**: When the rotation cycle is 1 week, you can specify the day and time for handoff
- **Fair Rotation**: When enabled, the system automatically adjusts rotation order to prevent someone from always being on-call during weekends
- **Date Mask**: Select which days of the week to schedule on-call. See [Date mask and continuous rotation](#date-mask-and-continuous-rotation) for details
- **Time Restriction**: (Optional) Restrict actual on-call hours within each rotation cycle, with the following modes:
- **No restriction**: Members are on-call for the entire rotation cycle
- **Daily**: Set daily on-call time ranges (e.g., 09:00–18:00), multiple periods can be added
- **Weekly**: Set day+time on-call ranges (e.g., Monday 09:00 – Friday 18:00), multiple periods can be added

<Note>When date mask is enabled, the "Weekly" restriction mode is unavailable since the date mask already provides day-of-week control. After setting time restrictions, there may be gaps with no one on-call — ensure other rules provide coverage.</Note>
</Step>
</Steps>

Expand Down Expand Up @@ -162,6 +182,17 @@ Consider enabling continuous rotation in the following scenarios:
</Tab>
</Tabs>

## View schedule details

---

Click a schedule name to enter the detail page, where you can view the scheduling calendar and manage on-call rules. The upper right corner provides these options:

- **View switcher**: Toggle between "Week", "Two Weeks", and "Calendar" (month view)
- **Highlight my shifts**: When enabled, your on-call shifts are highlighted for quick identification

Click any time slot in the calendar to view the current responders or create an override.

## View Personal Schedule

---
Expand Down
49 changes: 40 additions & 9 deletions zh/on-call/configuration/schedule.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Flashduty On-call 提供极具灵活性的值班编排能力,支持按天、
| **临时调班** | 在不修改长期规则的前提下,临时调整某一段时间的值班人(常用于请假、临时顶班) |
| **日期掩码** | 选择参与值班的时期,比如周一到周五时 A 团队值班,周末是 B 团队值班 |
| **连续轮换** | 开启后,轮换边界以班次开始时间为基准计算,避免班次在 00:00 被拆分。仅在配置日期掩码时支持,详见[日期掩码与连续轮换](#日期掩码与连续轮换) |
| **公平轮换** | 系统自动调整轮换顺序,确保每个成员都有机会在不同的时间段或轮次中参与值班,避免某个成员始终在休息日值班 |

![值班表概念图](https://docs-cdn.flashcat.cloud/images/png/3423a4f3133d5caa1f0aaebca970d404.png)

Expand All @@ -40,20 +41,39 @@ Flashduty On-call 提供极具灵活性的值班编排能力,支持按天、
<Steps>
<Step title="创建值班表">
进入 **值班管理**,点击"创建值班表"
- **值班名称**:长度为 1~40 个字符,同一账户下不可重复
- **管理团队**:指定该值班表归属哪个团队管理,团队成员将获得该值班表的编辑权限
- **值班描述**:支持 Markdown 语法,该区域的内容可以在通知时携带
- **所属团队**:指定该值班表归属哪个团队管理,并非值班人员
</Step>
<Step title="设置通知提醒">
为了避免忘记值班或交接,系统提供两种提醒:
- **交接班通知**:在轮换交接前 N 分钟(如提前 15 分钟),同时通知"即将下班"和"即将接班"的人员
- **值班中通知**:在值班期间,每天固定时间(如上午 9:00)发送通知,提醒当前谁在值班
- **渠道**:支持邮件、短信、电话、IM(飞书/钉钉/企微)
<Step title="设置换班通知">
为了避免忘记值班或交接,系统提供两种通知时机:
- **提前通知**:在轮换交接前 N 分钟(以 5 分钟为步长),同时通知"即将下班"和"即将接班"的人员
- **定时通知**:在值班期间,每天固定时间(如上午 8:00)发送通知,提醒当前谁在值班

启用任一通知时机后,您需要配置通知渠道:

- **单聊渠道**:向值班人员个人发送通知
- **遵循个人偏好**:每个值班人员按各自在个人账户中配置的通知渠道接收通知
- **遵循统一设置**:由管理员统一选择通知渠道(短信、邮件,以及已集成的 IM 应用)
- **群聊渠道**:将通知发送到群聊中,支持以下平台:
- 飞书应用、钉钉应用、Slack 应用(通过已集成的 IM 应用选择群聊)
- 企业微信机器人、钉钉机器人、飞书机器人(通过 Webhook 地址发送)
- Slack 机器人、Telegram 机器人、Zoom 机器人
</Step>
<Step title="定义值班规则">
这是最核心的步骤。您可以添加一层或多层规则。每层规则包含:
- **值班人员**:选择参与轮换的成员
- **轮换周期**:支持天、周、自定义时长
- **限制时间段**:(可选)该规则仅在特定时间段生效

- **值班人员**:选择参与轮换的成员,支持按组排列,支持设置主备角色
- **轮换周期**:支持小时、天、周、月四种单位,数值范围为 1~30。例如"2 天"表示每 2 天轮换一次
- **交接时间**:当轮换周期为 1 周时,可以指定在周几的什么时间进行交接
- **公平轮换**:开启后,系统自动调整轮换顺序,避免某个成员始终在休息日值班
- **日期掩码**:选择一周中的哪些天安排值班,详见[日期掩码与连续轮换](#日期掩码与连续轮换)
- **值班时间**:(可选)限定成员在每个轮换周期内的实际值班时间段,支持以下模式:
- **不限制**:成员在整个轮换周期内值班
- **每天**:设置每天的值班时间段(如 09:00~18:00),可添加多个时间段
- **每周**:设置按星期+时间的值班范围(如周一 09:00 ~ 周五 18:00),可添加多个时间段

<Note>当开启日期掩码时,"每周"模式不可用,因为日期掩码已提供按星期的控制。设置值班时间后,轮换周期内可能存在无人值班的时段,请确保有其他规则覆盖。</Note>
</Step>
</Steps>

Expand Down Expand Up @@ -163,6 +183,17 @@ Flashduty On-call 提供极具灵活性的值班编排能力,支持按天、
</Tab>
</Tabs>

## 查看值班详情

---

点击值班表名称进入详情页,您可以查看排班日历和管理值班规则。页面右上角提供以下操作:

- **视图切换**:在"一周"、"两周"和"日历"(月视图)之间切换
- **高亮我的值班**:开启后,您的值班时段将被高亮显示,方便快速识别

在日历中点击任意时间段,可以查看当前值班人员,或创建临时调班。

## 查看个人值班计划

---
Expand Down