Отсутствующие всплывающие напоминания в событиях календаря Google

я путаю с Google Календарь v3 интерфейс. Кажется, что-то изменилось.

у меня есть код VBA, который создает события и придает всплывающее напоминание:

If (sEventSettings.bSetReminder) Then
    Dim oReminders As New Data.Event.RemindersData()
    Dim oReminder As New Data.EventReminder()
    Dim listReminders As IList(Of Data.EventReminder) = New List(Of Data.EventReminder)()

    oReminder.Minutes = sEventSettings.iSetReminderTime
    oReminder.Method = "popup"

    listReminders.Add(oReminder)

    oReminders.UseDefault = False
    oReminders.Overrides = listReminders

    oEvent.Reminders = oReminders
End If

в течение многих лет он работал. И я мог видеть что-то подобное в онлайн-календаре:

Google Popup Reminder

теперь я использую Windows 10 / Microsoft Edge, и я пошел посмотреть на свои события, и это то, что я см.:

Google Notification

Он изменился. Если я вручную установить уведомление, это позволит только почта. Что случилось с всплывающие "напоминания"?

по словам Google Календарь Документация всплывающие напоминания по-прежнему поддерживаются. Поэтому я в замешательстве.

обновление

если вы посмотрите на определение EventReminder.Метод свойство:

Namespace Google.Apis.Calendar.v3.Data
    Public Class EventReminder
        Implements IDirectResponseSchema

        Public Sub New()

        '
        ' Summary:
        '     The method used by this reminder. Possible values are: - "email" - Reminders
        '     are sent via email. - "sms" - Reminders are sent via SMS. These are only available
        '     for Google Apps for Work, Education, and Government customers. Requests to set
        '     SMS reminders for other account types are ignored. - "popup" - Reminders are
        '     sent via a UI popup.
        <JsonProperty("method")>
        Public Overridable Property Method As String
        '
        ' Summary:
        '     Number of minutes before the start of the event when the reminder should trigger.
        '     Valid values are between 0 and 40320 (4 weeks in minutes).
        <JsonProperty("minutes")>
        Public Overridable Property Minutes As Integer?
        '
        ' Summary:
        '     The ETag of the item.
        Public Overridable Property ETag As String
    End Class
End Namespace

Итак, API ожидает, что вы будете использовать:

  • электронная почта
  • всплывающие
  • SMS

тем не менее, как мы и договаривались,Календарь Google на браузер теперь изменилось, и он больше не показывает напоминания но уведомления. Для меня это списки:

  • электронная почта
  • уведомления

поэтому мне до сих пор не ясно, как программно создать событие в VB.NET с эквивалентом всплывающего напоминания.

запрос о помощи

ответ все еще не помогает мне. Вы больше не можете создать событие календаря и установить метод объекта напоминания как "всплывающее окно". Кажется, вместо этого нужно использовать "уведомления", и я не могу понять, как программно сделайте это с помощью API V3.

дальнейшие исследования

Я вручную создал календарь с Google Chrome и добавил событие. Затем я добавил уведомления значение 1 день. Я экспортировал этот календарь в формате ICS:

BEGIN:VEVENT
DTSTART:20170420T143000Z
DTEND:20170420T153000Z
DTSTAMP:20170307T102059Z
UID:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CREATED:20170307T102022Z
DESCRIPTION:This is a test
LAST-MODIFIED:20170307T102045Z
LOCATION:Home
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P1D
END:VALARM
END:VEVENT

обратите внимание на этот бит в конце:

BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P1D
END:VALARM

по данным Википедия в нем говорится, что события могут иметь некоторые valarm будет коды.

если я импортирую этот файл ICS в новый календарь в Microsoft Outlook, он правильно установлен как один день:

Reminder

еще когда я экспортирую мой события, которые у меня правильно, как я и ожидал, нет объектов VALARM. Тем не менее, я создал их правильно:

If (sEventSettings.bSetReminder) Then
    Dim oReminders As New Data.Event.RemindersData()
    Dim oReminder As New Data.EventReminder()
    Dim listReminders As IList(Of Data.EventReminder) = New List(Of Data.EventReminder)()

    oReminder.Minutes = sEventSettings.iSetReminderTime
    oReminder.Method = "popup"

    listReminders.Add(oReminder)

    oReminders.UseDefault = False
    oReminders.Overrides = listReminders

    oEvent.Reminders = oReminders
End If

они не удостаиваются чести Google Календарь V3 API. Я думаю, проблема здесь в том, что функция сломана. Затем переименовали его из всплывающего окна в уведомление и не обновили поддержку создания событий с этими всплывающими предупреждениями. Я использую последние загрузки диспетчера пакетов. Я поднял вопрос об этом несколько дней назад с помощью Google.

Я не считаю, что это ошибка с моей стороны. Учитывая тишину из пользовательской базы здесь, я пришел к выводу, что никто на самом деле не использует API для создания событий и установки напоминаний. Или, что могут быть другие пользователи, которые теперь имеют затронутый код и не знают об этой проблеме.

но если вы знаете об этом и можете воспроизвести мою проблему / или узнать о прагматическом решении, пожалуйста, дайте мне знать. Спасибо.

2 ответов


мое событие в моем коде было обернуто if предложение, и оно должно быть:

If (strEventType = kTagAssignmentsMSA Or strEventType = kTagMidweekMeetingCLM) Then

Он был установлен на устаревший тег, который я больше не использовал, и я не обновил свой код. Таким образом, он никогда не создавал напоминание о событии.

мне плохо. Проблема решена. Не было никаких проблем.


вы также можете установить Notification. Это та же функция, что и pop up.

enter image description here

кроме того, на основе этого страница поддержки, вы должны иметь Google Календарь открыт в вашем браузере, чтобы получать уведомления на вашем компьютере.