Štítek


prehled

Vytvoření přehledu událostí v google kalendáři pomocí skriptu

Používám telefon, který běží na androidu ( UMI X1 s LeWa OS B) ) a analogicky k tomu také kalendář od google. V celku příjemné rozhraní od google postrádá pro mě zajímavou funkcionalitu a to výpis určitých událostí za dané období. Hledal jsem v diskuzích a našel prima skript, který tento výpis vygeneruje do tabulky na Disku Google (už nevím zdroj, tak zveřejním pouze výsledný, mnou upravený).

Postup pro vytvoření skriptu v Disk Google je velmi jednoduchý: Disk Google / vytvořit / skript / tabulka, následně se otevře okno pro psaní skriptu. Později se lze do editačního okna dostat z rozhraní tabulky skrze Nástroje / Editor skriptů ….

Ve skriptu jsem napsal vše potřebné do komentářů :) snad jen, že výsledkem je menu (v tabulce Google) Kalendář s položkou Přehled událostí, kterou výsledný skript spustíme.

náhled zdrojového kódu
function prehledUdalosti() {
 
  var dnes = new Date();
  //Zde zadejte adresu na kalendář, kterou najdete moje kalendáře / nastavení / kliknutí na vybraný kalendář / adresa kalendáře - ID Kalendáře
  var Kalendar  =  CalendarApp.getCalendarById("xxxxxx@group.calendar.google.com");
 
  //Nastaveni objektu Kalendar pro standardní (default) kalendář
  //var Kalendar  =  CalendarApp.getDefaultCalendar();
 
  //načítám události za letošní rok
  var udalosti = Kalendar.getEvents(new Date(dnes.getFullYear(),1,1), new Date(dnes.getFullYear(),12,31));
 
  var vypis = new Array();
 
  var pocitadlo = 0;
 
  //první řádek ve výpisu bude nadpis, hlavička tabulky
  vypis.push(Array("Nadpis", "Místo", "Začátek", "Konec", "Popis"));
 
  for (var i = 0; i<udalosti.length; i++)
  {
 
    //pokud nadpis události obsahuje x nebude zahrnut do výpisu
    if (udalosti[i].getTitle().indexOf('x') == -1)
    {
 
    var radekVypis = new Array();
 
      radekVypis.push(udalosti[i].getTitle());
      radekVypis.push(udalosti[i].getLocation());
      radekVypis.push(udalosti[i].getStartTime());
      radekVypis.push(udalosti[i].getEndTime());
      radekVypis.push(udalosti[i].getDescription());
 
      vypis.push(radekVypis);
 
    pocitadlo++;
 
    }
  }
 
  //poslední řádek výpisu obsahuje počet událostí vybraných (bez "x") a všechny
  vypis.push(Array("Počet událostí vybrané / všechny:", "","", pocitadlo + " / " + udalosti.length,""));
 
  var list = SpreadsheetApp.getActiveSheet().getRange(1, 1, vypis.length, vypis[0].length).setValues(vypis);
}
 
function onOpen() {
 
  var sesit = SpreadsheetApp.getActiveSpreadsheet();
 
  var polozkyMenu = [{
    name : "Přehled událostí",
    functionName : "prehledUdalosti"
  }];
 
  sesit.addMenu("Kalendář", polozkyMenu);
 
};