Google Calendar script: remove recurrence

I iterate through the event table and modify my calendar accordingly.

I can use setRecurrenceto create multi-day events, but I cannot figure out how to remove a class and include it in a one-day event.

It is important to know, because, obviously, applying setRecurrenceto an event more than once does not replace / redefine the existing repetition, but continues to attract additional classes to it. This prevents simple workarounds such as repeating 0 days, etc.

I am looking for an equivalent event.removeRecurrence().

+4
source share
3

, script: ressources/advanced Google Services ***

function ChangeEvent(){
  var calendarId = 'primary';
  var eventId = 'omv6###########e8jbs';
  var event = Calendar.Events.get(calendarId, eventId);
  Logger.log('old recurrence = '+event.recurrence);
  event.recurrence = '';
  Calendar.Events.patch(event,calendarId,eventId);
  Logger.log('new recurrence = '+event.recurrence);
}

enter image description here


,

, , API , , @google.com. .

:

[16-02-19 07:22:59:739 CET] ba4a1dub73uqsvhld3abh15f38@google.com
[16-02-19 07:22:59:740 CET] ba4a1dub73uqsvhld3abh15f38

:

  Logger.log(event.getId());// event is the event you get using calendarApp
  var advancedID = event.getId().substring(0,event.getId().indexOf('@'));
  Logger.log(advancedID);// this ID is for advanced service
}

:

5 , calendarApp ( ), createEventRec()

,

changeEvent()

function createEventRec(){
  var cal = CalendarApp.getDefaultCalendar();
  var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
  var event = cal.createEventSeries('Dinner with Mary', new Date(),new Date(new Date().getTime()+3600000), recurrence);
  Logger.log(event.getId());
  PropertiesService.getScriptProperties().setProperty('ID',event.getId());
}


function ChangeEventRecurrence(){
  var calendarId = 'primary';
  var ID = PropertiesService.getScriptProperties().getProperty('ID');
  var advancedID = ID.substring(0,ID.indexOf('@'));
  Logger.log(advancedID);
  var event = Calendar.Events.get(calendarId, advancedID);
  Logger.log('old recurrence = '+event.recurrence);
  event.recurrence = '';
  Calendar.Events.patch(event,calendarId,advancedID);
  Logger.log('new recurrence = '+event.recurrence);
}
+2
ev.removeAllReminders();
ev.deleteEvent();
0

1 10 .

function delete_rec_events()
{
  //take care: Date function starts at 0 for the month (January=0)
  var fromDate = new Date(2018,0,1,0,0,0); //This is January 1, 2018
  var toDate = new Date(2018,0,10,0,0,0);   //This is January 10, 2018 at 00h00'00"

  var calendarName = '<Name of the Calendar>';    
  var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
  var events = calendar.getEvents(fromDate, toDate);

  for(var i=0; i<events.length;i++)
  {
    var ev = events[i];
    Logger.log('Checking Event Title === ' + calendar.getEventSeriesById(ev.getId()).getTitle());
    calendar.getEventSeriesById(ev.getId()).deleteEventSeries();
    Logger.log('Event Deleted');
  }
}
0

Source: https://habr.com/ru/post/1629337/


All Articles