Question

Previously, I have the following workable Google Calendar API 2

Google Calendar API v2

    CalendarEventEntry calendarEventEntry = new CalendarEventEntry();
    calendarEventEntry.setTitle(new PlainTextConstruct(message));
    calendarEventEntry.setContent(new PlainTextConstruct(message));
    calendarEventEntry.addTime(when);

    // 0 minute reminder
    Reminder reminder = new Reminder();
    reminder.setMinutes(0);
    reminder.setMethod(Method.SMS);
    List<Reminder> reminders = calendarEventEntry.getReminder();
    reminders.add(reminder);

    // Send the request and receive the response:
    try {
        calendarEventEntry = calendarService.insert(postUrl, calendarEventEntry);
    } catch(IOException exp) {
        log.error(null, exp);
        return false;
    } catch (ServiceException exp) {
        log.error(null, exp);
        return false;
    }

    return true;

Now, I want to migrate to Google Calendar API v3

    // Create a new event.
    Event event = new Event();
    event.setSummary(message);
    event.setStart(startEventDateTime);
    event.setEnd(endEventDateTime);

    // 0 minute reminder
    EventReminder reminder = new EventReminder();
    reminder.setMinutes(0);
    reminder.setMethod("sms");

    List<EventReminder> listEventReminder = new ArrayList<EventReminder>();
    listEventReminder.add(reminder);

    System.out.println("Is null? = " + event.getReminders());

    event.getReminders().setOverrides(listEventReminder);

    try {
        Event createdEvent = service.events().insert(calendarListEntry.getId(), event).execute();
    } catch (IOException ex) {
        log.error(null, ex);
        return false;
    }
    return true;

However, event.getReminders will always return null. I was wondering, what is the correct way to do so?

In case you're interested, I place the complete code set at GitHub : GoogleCalendar.java

Was it helpful?

Solution

Just by looking at the API, have you tried this?

Event.Reminders reminders = new Event.Reminders();
reminders.setUseDefault(false);
List<EventReminder> listEventReminder = new ArrayList<EventReminder>();
listEventReminder.add(reminder);
reminders.setOverrides(listEventReminder);
event.setReminders(reminders);

System.out.println("Is null? = " + event.getReminders());

OTHER TIPS

In the current version of API 3 (rev85=1.18-rc) Reminders are only accepted for PRIMARY calendar. Setting reminders for other calendars is ignored - you get the default. No error message, no documentation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top