日历集成
连接一次,随处管理。 连接 Google 日历或 Microsoft Outlook(Teams)后,你的 Voilà 课程就会像其他任何会议一样出现在日历上——你在日历中对事件所做的任何操作都会自动同步回 Voilà。重新安排、取消、接受、拒绝——两端会在几秒内保持同步。
本页面是为教师编写的。"学生的体验"部分详细说明了学生在他们这一端看到的内容,这样你就可以放心地从日历中管理整个日程。
支持的提供商
| 提供商 | 自动附加视频链接 | 创建的内容 |
|---|---|---|
| Google 日历 | Google Meet | 每节课程一个事件,每个循环系列一个主事件 |
| Microsoft Outlook / Teams | Microsoft Teams | 每节课程一个事件,每个循环出现一个事件 |
你一次只能连接一个日历提供商。要切换,请先在设置 → 集成下断开当前连接。
连接 Google 日历
- 转到设置 → 集成或日程安排 → 连接 Google 日历。
- 点击连接 Google 日历。
- 使用你的 Google 账户登录,并授权 Voilà 读取和写入事件。
- 你的日历会立即开始同步。
连接时会发生什么: 每个已确认的未来 Voilà 课程都会被推送到你的 Google 日历——每个都带有 Google Meet 链接、预先填充的参与者和"通过 Voilà 预订"的正文。无需做其他任何事情。
连接 Microsoft Outlook / Teams
- 转到设置 → 集成或日程安排 → 连接 Outlook 日历。
- 点击连接 Outlook 日历。
- 使用你的 Microsoft 账户登录,并授权 Voilà 读取和写入事件。
- 你的日历会立即开始同步。
每节课程都会作为 Teams 会议出现在你的 Outlook 日历上(加入链接会自动附加),学生被列为参与者。同样的回填行为也适用:未来的 Voilà 课程会立即出现在你的 Outlook 日历上。
日历上显示的内容(Voilà → 日历)
| Voilà 事件 | 日历上显示的内容 |
|---|---|
| 1:1 预订已确认 | 课程时间的邀请,包含 Meet/Teams 链接、学生作为参与者,以及 Voilà 编写的正文。 |
| 小组课程已确认 | 相同的事件,所有接受的成员都在参与者列表中。随着更多成员接受,他们会被添加;如果成员退出,他们会被移除。 |
| 创建循环课程 | Google: 一个涵盖整个系列的主循环事件。Outlook: 每个出现一个事件(这样每个实例的更新就能通过 Microsoft Graph 顺利流动)。 |
| 在 Voilà 中接受重新安排 | 邀请的开始/结束时间会就地更新,参与者会收到更新通知。适用于 Google 和 Outlook。 |
| 在 Voilà 中取消课程 | 日历事件被移除,参与者会收到取消通知。适用于 Google 和 Outlook。 |
| 在 Voilà 中跳过循环出现 | 仅该出现被取消——系列的其余部分保持不变。 |
同步回 Voilà 的内容(日历 → Voilà)
这一部分让你可以"生活在日历中"。下面的任何内容都会自动改变 Voilà 状态。
你移动事件时间
将 Voilà 事件拖到不同的时间段,或编辑其开始/结束时间,会在 Voilà 内打开一个重新安排提议。一旦学生确认(在应用内或通过回复电子邮件),事件时间就会在两个系统中锁定。在此之前,事件作为待处理提议存在——学生仍然可以从 Voilà 内部查看并接受/拒绝它。
你删除或取消事件
Voilà 将课程标记为已取消,并运行取消政策的教师取消分支:
- 学生获得全额退款(如果是 Stripe)或返还会话积分(如果是会话包),无论取消是否发生在截止时间之前或之后。教师属性的取消总是让学生获得全额补偿。
- 对于小组课程,每个已付费的座位都会被退款。
- 学生会收到取消电子邮件和聊天卡更新。
你创建一个新事件,其中一个学生作为参与者
如果你和该学生之间存在活跃的师生关系,Voilà 将:
- 自动创建该课程的预订提议。
- 向学生发送电子邮件,以便他们可以确认时间。
- 在提议待处理时在你的可用性中保留该时间段。
如果参与者不是你已知的学生,Voilà 会将该事件记录为你可用性上的常规忙碌时间——但不会创建预订。
你向日历添加任何其他事件
你添加的任何事件——工作会议、牙医预约、与朋友共进午餐——都被视为忙碌时间,并在该时间窗口内阻止新的学生预订。你无需做任何事情;这是自动的。
学生的体验
每当课程被确认时,你的学生会收到同一事件的日历邀请——其中包含 Meet 或 Teams 加入链接。所以他们也可以从自己的日历中管理课程。以下是 Voilà 对学生可以从他们的收件箱或日历应用中执行的每项操作的反应:
| 学生操作 | Voilà 的反应 |
|---|---|
| 接受邀请 | 无额外操作——他们已经在课程中。他们的回复会被记录以供查看。 |
| 从日历中拒绝待处理提议 | 提议在 Voilà 中被拒绝。你会收到电子邮件和聊天通知。 |
| 从日历中拒绝已确认的 1:1 课程 | Voilà 运行取消政策的学生取消分支。截止时间前 = 全额退款或返还积分;截止时间后 = 没收(你保留付款)。 |
| 从已确认的小组课程中拒绝 | 仅该学生的座位被退款;课程对其他人继续进行(受你的最少座位规则限制)。 |
| 拒绝循环出现 | 该单个出现被跳过(根据取消政策退款或没收)。系列的其余部分保持不变。 |
| 将邀请转发到另一个收件箱 | 对课程无影响——Voilà 是真实来源,转发邀请不会移动课程或重新发放退款。 |
简而言之:学生可以完全从他们的日历邀请中管理他们的参与,你会在几秒内看到 Voilà 端反映的每项操作。
通过日历进行小组课程
小组课程增加了一个额外的复杂性——最少座位规则:
- 一个成员拒绝 → 该座位被退款,参与者从日历事件中移除,课程继续。
- 拒绝使课程在取消截止时间之前低于
min_seats→ 整个课程被取消,每个已付费的座位都被退款,日历事件被移除。 - 拒绝使课程在取消截止时间之后低于
min_seats→ 课程保持进行(保留座位的人已经为该时间段付费),你会收到一封提醒电子邮件,以便你可以决定如何处理。
通过日历进行循环课程
循环课程在每个提供商上的存储方式不同,但体验是相同的:
- Google: 系列是单个主循环事件。从日历中拒绝一个实例仅在 Voilà 中跳过该出现;拒绝主事件会取消每个未来出现。
- Outlook: 每个出现都单独链接,以便来自 Microsoft Graph 的每个实例更新能够顺利流动。拒绝一个出现在 Voilà 中跳过它;拒绝系列会结束未来出现。
- 从 Voilà 内部跳过出现会自动取消匹配的日历实例,并向参与者发送清晰的取消通知。
- 教师的取消政策更改不会追溯应用到已存在的出现——每个出现都锁定了创建时活跃的政策。
同步如何交付
Voilà 使用推送通知(webhooks)作为主要触发器:
- Google 日历 — Voilà 通过 Google 的
events.watch频道订阅你的日历;更新会在你在 Google 日历中保存后的几秒内到达。 - Microsoft Outlook / Teams — Voilà 通过 Microsoft Graph webhooks 订阅;行为相同。
一小组安全网保持频道健康:
- 每小时维护任务在订阅过期前更新它们,并引导任何缺失的监视。
- 连接时回填将现有的未来 Voilà 课程推送到你的新日历(并反向导入你现有的日历忙碌时间)。
- 手动刷新可从日程安排页面获得——在你测试或 webhook 短暂错过交付时很有用。
本页面的早期版本提到了"5 分钟轮询周期"。这不再准确——同步是基于推送的,通常在 30 秒内到达。
通过日历的取消政策和退款
日历端的取消遵循你为 Stripe 付费预订配置的完全相同的取消政策(参见 Stripe Connect 支付):
- 你取消(从日历中删除/取消):学生获得全额退款,无论时间如何。
- 学生在截止时间前从日历中拒绝:全额退款或返还积分给学生。
- 学生在截止时间后从日历中拒绝:付款被没收(你保留)或会话积分被消费。
- 小组课程:个人拒绝的按座位退款;如果教师取消或截止时间前低于
min_seats的下降取消课程,则每个已付费座位的全额退款。
隐私和范围
- Voilà 仅读取和写入你连接的日历上的事件——从不涉及你账户上的任何其他日历。
- Voilà 读取的事件仅用于日程安排和可用性计算。
- 你可以随时在设置 → 集成下撤销访问权限(或直接从你的 Google / Microsoft 账户设置中撤销)。
故障排除
令牌已过期
如果同步停止,OAuth 令牌可能已过期。打开设置 → 集成并点击重新连接。
同步延迟
Webhooks 通常在约 30 秒内交付。每小时维护任务是一个安全网,可更新订阅并重新同步任何短暂失败的交付。你也可以从日程安排页面触发手动刷新。
与非 Voilà 事件的冲突
如果你尝试在日历上被非 Voilà 事件覆盖的时间段上确认 Voilà 预订,Voilà 会警告你并让你覆盖冲突——当日历事件是你乐意释放的"软"保留时很有用。
切换提供商
一次只能连接一个日历。在设置 → 集成下断开 Google 后再连接 Outlook(或反之)。
双向同步,端到端
sequenceDiagram
participant Student
participant StudentCal as "学生日历"
participant Voila
participant TutorCal as "教师日历(Google 或 Outlook)"
participant Tutor
Note over Voila,TutorCal: 课程在 Voilà 中已确认
Voila->>TutorCal: 创建带有 Meet 或 Teams 链接的事件
TutorCal-->>Student: 邀请已交付
TutorCal-->>StudentCal: 邀请已交付
Note over Student,StudentCal: 学生从收件箱中拒绝
StudentCal->>TutorCal: 回复已拒绝
TutorCal->>Voila: Webhook 触发
Voila->>Voila: 运行取消政策
Voila-->>Tutor: 应用内和电子邮件通知
Voila-->>Student: 退款或没收确认
Note over Tutor,TutorCal: 教师取消事件
TutorCal->>Voila: Webhook 触发
Voila->>Voila: 取消并退款
Voila->>StudentCal: 日历事件已移除
相关
- 日程安排 — 每周可用性、预订政策、休假模式
- 小组课程 — 最少座位、成员管理、小组取消行为
- Stripe Connect 支付 — 取消政策以及如何应用退款