quarta-feira, 21 de outubro de 2015

Como se livrar de eventos recorrentes no Google Calendar

Havia instalado um app de corrida no celular para me iludir tentar fazer algum exercício. A questão foi que o aplicativo, para me lembrar das corridas, criou centenas de eventos na agenda do Google e eu não conseguia apagar todos de uma vez pois eles não estavam ligados, como se fossem independentes.


A solução de programador foi criar um script na plataforma Google Apps Script que permite interagir com algumas aplicações através de javascript. Mais informações aqui .


Criei o script abaixo 

var calendar_name = 'put calendar name here';
var event_name = 'put event title here';
var start_date = 'AAAA-MM-DD';
var end_date = 'AAAA-MM-DD'
var not_found_calendar = true;


function wipeBastardEvent(cal){
 
  Logger.log(cal.getName());
  
  date_start_parts = start_date.split('-');
  date_end_parts = end_date.split('-');
  
  var date_initial = new Date(date_start_parts[0], date_start_parts[1], date_start_parts[2]);
  var date_end = new Date(date_end_parts[0], date_end_parts[1], date_end_parts[2]);
  
  var events = cal.getEvents(date_initial, date_end)
  
  var bastardEventsSentToHellCount = 0;
  Logger.log(start_date);
  Logger.log(end_date);
  for(i in events){
    
    Logger.log(events[i].getTitle());
    if(events[i].getTitle() == event_name){
      bastardEventsSentToHellCount += 1;
      events[i].deleteEvent();
    }
    
  }
  msg = "Deleted " + bastardEventsSentToHellCount + " events with name '" + event_name + "'";
  Logger.log(msg);
  
}

function main() {
 
  var calendars = CalendarApp.getAllOwnedCalendars();

  for (i in calendars){
    if(calendar_name == calendars[i].getName()){
      wipeBastardEvent(calendars[i]);
      not_found_calendar = false;
      break;
    }
  }
  
  if(not_found_calendar){
     msg  = "Calendar with name '" + calendar_name + "' not found. Is it correct?";
     Logger.log(msg);
   
  }               
}


e executá-lo aqui

Nenhum comentário: