Integrando Google Agenda de feriados Brasileiros em Google Sheets, controle de pousadas

Existe uma agenda pública que se pode integrar aos calendários pessoais que é a agenda do Google de feriados brasileiros. Além de se poder utilizar essa agenda para consulta também pode-se, através de programação, consultá-la e integrar às planilhas do Google (Google Sheets). Na imagem abaixo vê-se a agenda de abril de 2017 demonstrando os feriados que ocorrerão no mês

google calendar

Na imagem abaixo, no controle de pousadas que desenvolvi utilizando Google Sheets, pude integrar esses feriados destacando os dias em amarelo

google sheets

As células destacadas em amarelo 14 e 16 (de abril) representam os dias de feriados (páscoa).

Segue código da user function

/**
 * é feriado hoje
 *
 * @param {dt} data de hoje
 * @return verdadeiro ou falseo
 * @customfunction
 */
function isHoliday(dt) {
 //var cal = "en.usa#holiday@group.v.calendar.google.com";
 var cal = "pt_br.brazilian#holiday@group.v.calendar.google.com";
 var calendar = CalendarApp.getCalendarById(cal);
 Logger.log('The calendar is named "%s".', calendar.getName());
 
 // Determines how many events are happening in the next two hours.
 var dtini = dt;
 var dtfim = new Date(dt.getTime() + 1000*60*60*23);
 
 Logger.log(dtini);
 Logger.log(dtfim);
 
 var events = calendar.getEvents(dtini, dtfim);
 
 Logger.log('Number of events: ' + events.length);
 
 for (i=0;i<events.length;i++){
 //Logger.log(events[i].getDescription());
 //Logger.log(events[i].getEndTime());
 Logger.log(events[i].getTitle());
 }
 
 if (events.length > 0){
 return true;
 }
 return false;
}

Por motivo de permissão de acesso via programação eu não consegui inserir a formula diretamente nas células da planilha. Essa era minha ideia inicial. Então eu criei um item de menu customizado que acionará a funçãogoogle sheets menu

Segue a funcao que este item aciona

function feriados(){
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Mapa de Ocupação (BETA2)');
 
 for(col=2;col<34;col++){
 var celldt = sheet.getRange(3,col);
 var dt = celldt.getValue()
 var cell = sheet.getRange(1,col);
 cell.setValue(isHoliday(dt));
 }
}

um abraco

 

Anúncios
Esta entrada foi publicada em Desenvolvimento com as etiquetas , , . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s