我有一个用 VB.Net 编写的命令行实用程序,它使用 Google v3 Calendar API 。我的一位用户在日期范围 删除日历活动时出现问题。
这是我的删除代码:
Private Function DeleteCalendarEvents(ByRef oBatchRequest As Google.Apis.Requests.BatchRequest,
strCalendarID As String,
strTag1 As String, strTag2 As String,
strStartDate As String, strEndDate As String,
bDeleteFurtureDates As Boolean) As Boolean
Dim oEvents As Events
Dim oQuery As New ListRequest(m_Service, strCalendarID) With {
.TimeMin = strStartDate & "T00:00:00Z"
}
If (Not bDeleteFurtureDates) Then
oQuery.TimeMax = strEndDate & "T23:59:59Z"
End If
oQuery.SingleEvents = True
oQuery.OrderBy = ListRequest.OrderByEnum.StartTime
If (strTag2 <> "") Then
oQuery.SharedExtendedProperty = {String.Format("TruckleSoft1={0}", strTag1),
String.Format("TruckleSoft2={0}", strTag2)}
Else
oQuery.SharedExtendedProperty = String.Format("TruckleSoft1={0}", strTag1)
End If
oEvents = oQuery.Execute()
' Let us try to get all the entries
For Each oEvent As Data.[Event] In oEvents.Items
' We try to add it to the batch
If (oBatchRequest.Count < 1000) Then
oBatchRequest.Queue(Of Data.[Event]) _
(m_Service.Events.Delete(strCalendarID, oEvent.Id), AddressOf OnEventDelete)
Else
' This should never happen!
' We reached 1000 delete events!
' We must set the progress max variable now for calculations to be correct in the event handler
m_iProgressMax = oBatchRequest.Count
Dim oTaskDelete = oBatchRequest.ExecuteAsync()
oTaskDelete.Wait()
' Start again
oBatchRequest = New Google.Apis.Requests.BatchRequest(m_Service)
oBatchRequest.Queue(Of Data.[Event]) _
(m_Service.Events.Delete(strCalendarID, oEvent.Id), AddressOf OnEventDelete)
End If
Next
Return True
End Function
您可以看到我如何设置TimeMin
和TimeMax
属性。
查看我的 Nuget 包,它会显示:
我可以看到我不再使用最新版本的软件包了。我的IDE是 VS2017社区版,我的项目以 4.6.2框架为目标。
现在,在我的计算机上,当我将数据发送到日历并删除所选日期范围的现有条目时,我没有遇到任何问题。但是对于我的一位用户,他们告诉我上一个日历事件会重复。就好像它没有被删除一样,因此会重复。
他们的日历是 -6:00中央时区。我是 GMT时区,但我尝试创建一个设置为-6:00中央时区的日历,并通过我的实用程序更新日历,我不会遇到问题。
他已经确认他的计算机上有 4.7框架。我不知道如何解决他的问题。有什么可以暗示我没有正确选择要删除的日历事件吗?
我只是重新检查了文档,我认为我正确地遵循了它:
谢谢。