跳到主要内容

日历集成

连接一次,随处管理。 连接 Google 日历或 Microsoft Outlook(Teams)后,你的 Voilà 课程就会像其他任何会议一样出现在日历上——你在日历中对事件所做的任何操作都会自动同步回 Voilà。重新安排、取消、接受、拒绝——两端会在几秒内保持同步。

本页面是为教师编写的。"学生的体验"部分详细说明了学生在他们这一端看到的内容,这样你就可以放心地从日历中管理整个日程。

支持的提供商

提供商自动附加视频链接创建的内容
Google 日历Google Meet每节课程一个事件,每个循环系列一个主事件
Microsoft Outlook / TeamsMicrosoft Teams每节课程一个事件,每个循环出现一个事件

你一次只能连接一个日历提供商。要切换,请先在设置 → 集成下断开当前连接。

连接 Google 日历

  1. 转到设置 → 集成日程安排 → 连接 Google 日历
  2. 点击连接 Google 日历
  3. 使用你的 Google 账户登录,并授权 Voilà 读取和写入事件。
  4. 你的日历会立即开始同步。

连接时会发生什么: 每个已确认的未来 Voilà 课程都会被推送到你的 Google 日历——每个都带有 Google Meet 链接、预先填充的参与者和"通过 Voilà 预订"的正文。无需做其他任何事情。

连接 Microsoft Outlook / Teams

  1. 转到设置 → 集成日程安排 → 连接 Outlook 日历
  2. 点击连接 Outlook 日历
  3. 使用你的 Microsoft 账户登录,并授权 Voilà 读取和写入事件。
  4. 你的日历会立即开始同步。

每节课程都会作为 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: 日历事件已移除

相关