0

我想用 Python 将我想要的事件 ID 插入到 Google Calendar API,但我不知道该怎么做,

 event = {
      'summary': acara,
      'location': lokasi,
      'description': deskripsi,
      'start': {
        'dateTime': start_time.strftime("%Y-%m-%dT%H:%M:%S"),
        'timeZone': timezone,
      },
      'end': {
        'dateTime': end_time.strftime("%Y-%m-%dT%H:%M:%S"),
        'timeZone': timezone,
      },


      'attendees': attendees,

      'reminders': {
        'useDefault': False,
        'overrides': [
          {'method': 'email', 'minutes': 24 * 60},
          {'method': 'popup', 'minutes': 10},
        ],
      },
    }
4

3 回答 3

0

您可以使用“事件:插入”。您可以在此处查看详细信息。

event = service.events().insert(calendarId='primary', body=event).execute()

来源:https ://developers.google.com/calendar/v3/reference/events/insert#python

于 2020-06-10T12:32:56.747 回答
0

id您可以通过简单地将字段添加到事件资源来指定您的自定义事件 ID :

 event = {
      'id': 123456
      'summary': acara,
      'location': lokasi,
      'description': deskripsi,
      'start': {
        'dateTime': start_time.strftime("%Y-%m-%dT%H:%M:%S"),
        'timeZone': timezone,
      },
      'end': {
        'dateTime': end_time.strftime("%Y-%m-%dT%H:%M:%S"),
        'timeZone': timezone,
      },


      'attendees': attendees,

      'reminders': {
        'useDefault': False,
        'overrides': [
          {'method': 'email', 'minutes': 24 * 60},
          {'method': 'popup', 'minutes': 10},
        ],
      },
    }

重要的

事件 ID 需要满足文档中指定的某些标准:

在创建新的单个或重复事件时,您可以指定它们的 ID。提供的 ID 必须遵循以下规则:

ID 中允许的字符是 base32hex 编码中使用的字符,即小写字母 av 和数字 0-9,请参阅 RFC2938 中的第 3.1.2 节

ID 的长度必须介于 5 到 1024 个字符之间

每个日历的 ID 必须是唯一的

由于系统的全球分布特性,我们不能保证在事件创建时会检测到 ID 冲突。为了最大限度地降低冲突风险,我们建议使用已建立的 UUID 算法,例如 RFC4122 中描述的算法。

如果不指定ID,则由服务器自动生成。

请注意,icalUID 和 id 不相同,在事件创建时只应提供其中一个。它们语义上的一个区别是,在重复事件中,一个事件的所有出现都具有不同的 id,而它们都共享相同的 icalUID。)

于 2020-06-10T13:23:46.460 回答
0

只是一个自插头:

有适用于 Python 的Google Calendar Simple API(由我编写)。它更简单,更 Pythonic,面向对象。它为您处理凭据、JSON 格式、日期时间/时区、重复周期等。这是文档

你会用它作为:

from gcsa.google_calendar import GoogleCalendar
from gcsa.event import Event

calendar = GoogleCalendar('your_email@gmail.com')
event = Event(
    summary=acara,
    event_id=your_id,
    start=start_date,
    end=end_time,
    timezone=timezone,
    attendees=attendees,
    recurrence=Recurrence.rule(freq=DAILY)),
    minutes_before_email_reminder=24 * 60,
    minutes_before_popup_reminder=10
)

calendar.add_event(event)
于 2020-06-14T21:06:57.657 回答