You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Google日历资源设置预订可用与不可用时间?

设置Google日历资源的可用/不可用时间

Google日历资源的可用性无法通过Admin SDK的Resources Calendars接口直接配置,该接口仅负责资源的基础信息管理。正确的做法是通过Google Calendar API操作资源对应的日历,通过添加忙碌事件来标记不可用时段:

  • 获取资源的日历ID:调用Admin SDK的resources.calendars.get接口,返回结果中的resourceEmail字段就是该资源的日历ID(即资源专属邮箱)。
  • 标记不可用时段:使用Google Calendar API的events.insert接口,向资源邮箱对应的日历中创建事件:
    • 将事件的transparency设为"opaque"(默认值),该时段会显示为忙碌,无法被用户预订。
    • 若需要设置重复的不可用规则(比如周末全天不可用),可以在事件中添加recurrence字段定义重复规则。
  • 权限要求:操作资源日历需要域管理员权限,或拥有该资源日历管理权限的账号授权。

注意:如果要设置资源的默认可用时段,通常的做法是创建覆盖非可用时段的重复忙碌事件,例如标记每天18:00-次日9:00为忙碌,剩余时段则默认处于可预订状态。

示例Python代码片段:

from googleapiclient.discovery import build
from google.oauth2 import service_account

# 初始化Calendar API客户端
credentials = service_account.Credentials.from_service_account_file(
    'service-account-key.json',
    scopes=['https://www.googleapis.com/auth/calendar']
)
service = build('calendar', 'v3', credentials=credentials)

# 替换为你的资源邮箱(从Admin SDK获取)
resource_calendar_id = "resource-xxx@your-domain.com"

# 创建单次不可用事件
unavailable_event = {
    'summary': '资源维护不可用',
    'start': {
        'dateTime': '2024-05-20T09:00:00+08:00',
        'timeZone': 'Asia/Shanghai',
    },
    'end': {
        'dateTime': '2024-05-20T12:00:00+08:00',
        'timeZone': 'Asia/Shanghai',
    },
    'transparency': 'opaque'
}

# 插入事件到资源日历
created_event = service.events().insert(calendarId=resource_calendar_id, body=unavailable_event).execute()
print(f"不可用事件创建完成:{created_event.get('id')}")

内容的提问来源于stack exchange,提问作者Benjamin Geoffrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:14