gpt4 book ai didi

javascript - Google Apps 脚本 : How to check if a calendar event has been marked as deleted manually

转载 作者:行者123 更新时间:2023-12-04 17:46:46 25 4
gpt4 key购买 nike

我编写了一个 Google Apps 脚本,它将保存在电子表格中的事件添加到 Google 日历中。每个事件都存储日历事件的 ID,以便在电子表格中的事件被修改时更新它。该事件仍然可以在日历中手动删除,因此我希望脚本能够检测到这一点并重新创建该事件。不幸的是,我不能简单地检查 null调用getEventById(...)时在 calendar 对象,因为即使被删除,这个函数似乎返回一个有效的 calendar目的。

CalendarEvent API 文档似乎没有指出一种方法来检查事件是否已通过 UI/手动删除。有没有办法通过 Google Apps API 访问这个属性?

即使永久删除已删除的事件也不能解决问题,尽管它会阻止对返回的 event 进行修改目的。

我可以用什么来检查事件(仍然存在)是否已被“删除”?我能想到的唯一可能有用的是get/setTag() CalendarEvent 的方法目的。

或者,this问题看起来很相似,但感觉应该有比搜索已删除事件列表更好的方法,而且我不确定这会解决让 ID 字符串返回已“永久”删除的有效事件的问题。

例子

var calendarId = "abc123@group.calendar.google.com"
var calendar = CalendarApp.getCalendarById(calendarId);

var event = calendar.createEvent(...);

// Event is then deleted manually in calendar but
// ID has been saved in spreadsheet (or elsewhere)

if (calendar.getEventById("the-deleted-event-id") == null) {
// Create the event (This is never reached)
} else {
// Update the event
}

最佳答案

我花了很长时间解决这个问题,但我无法理解为什么没有更好的方法可以直接通过 CalendarApp 来解决它。
你需要的是这样的:

var eventId = "5qif5n15v46c0jt5gq20a39dqu@google.com".split("@")[0];
if(Calendar.Events.get("yourCalendarId", eventId).status === "cancelled")
CODE://what to do if event was deleted (manually)

笔记:
  • 由于 API v3.0 仅将 @ 之前的部分用作 eventid,因此您需要
    拆分(脱衣休息)
  • 您需要先激活 Calendar API v3.0。

  • 您将在此问题中找到更多信息: Checking a Google Calendar Event's Existence

    关于javascript - Google Apps 脚本 : How to check if a calendar event has been marked as deleted manually,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122824/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com