带有 Google 日历 API(时隙)React/NodeJS 的预约系统

Posted

技术标签:

【中文标题】带有 Google 日历 API(时隙)React/NodeJS 的预约系统【英文标题】:Appointment System with Google Calendar API (Timeslots) React/NodeJS 【发布时间】:2021-08-08 20:39:41 【问题描述】:

我目前正在使用 Google Calendar API 使用 React 和 NodeJS 开发约会日历。目标是归档以下内容:

第 1 步:用户在日历中选择所需的日期(完成) 第 2 步:显示开放时间之间的 30 分钟免费时段(完成) 第 3 步:预约并添加到日历(完成)

但现在的问题是,每个时间段可以有 10 个单独的预订,我想显示还剩多少(例如 3 人在 15:30 预订了该时间段,我想显示还剩下 7 个时间段) 目前如果有人预订了 15:30 的时段,则将其删除。那是因为我使用了一个 FreeBusy 查询,它只显示忙碌的时间,而不是有多少事件。

我的第一个想法是将预订也保存在数据库中,然后在每个时间段查找之前预订了多少人,但这似乎不是最佳解决方案。

您对如何解决这个问题有更好的想法吗?

提前致谢

【问题讨论】:

【参考方案1】:

只是一个建议,但也许对于放置在日历上的每个活动,您都可以附加一个扩展属性以将活动标记为已预订。

"extendedProperties": 
    "shared": 
      "booked": "false",
    

https://developers.google.com/calendar/v3/reference/events#resource

然后,每当有人预订活动时,您可以通过更改提及的扩展属性将该活动标记为已预订。要显示可免费预订的活动数量,您可以按所选时间段的 timeMin、timeMax 过滤活动列表,并计算标记为免费或预订的活动数量。

【讨论】:

感谢您的建议,我会试一试:-)

以上是关于带有 Google 日历 API(时隙)React/NodeJS 的预约系统的主要内容,如果未能解决你的问题,请参考以下文章

带有 Google 日历的 Notion API

使用 API 从 Google 日历中检索事件

如何在每个时隙检测到最大条目时更改日历覆盖

如何使用 React、Redux 和 Webpack 实现 Google API

Google Calendar API,如何添加带有附加新生成的google meet的事件?

带有服务帐户的 Google Calendar Python API 未返回任何结果