Kalendář Google, Google tabulka, Gmail a Google Script?!

Kalendář Google, Google tabulka, Gmail a Google Script?!

Kalendář Google v G Suite balíčku nám dokáže vytrhnout onen pověstný trn z paty. Pomocí této aplikace se dokážeme zbavit chaosu, ale poslouží nám v mnoha dalších ohledech našeho osobního nebo pracovního života.

Já však zde nebudu ukazovat již tisíckrát omílaná témata, ale zaměřím se na možnost propojení a drobnou automatizaci pomocí Google Scriptu. Propojovat budeme Google tabulky, Google kalendář, Gmail ale zabrousíme také k ČNB. Trezory plné zlata necháme stranou, ale pokusíme se ze stránek ČNB automaticky a pravidelně načítat kurz Eura.

Jedná se o modelovou ukázku a spíše přehled možností G Suite řešení. Přesto uvedené řešení mám stále nasazené a používám ho. Zarputilé vývojáře prosím o určitou shovívavost:)

 

Naplňme si kalendář Google daty z ostatních G Suite aplikací

Náš modelový případ bude spočívat v následujících krocích, které budou probíhat v týdenním intervalu:

  • načteme kurz Eura ze stránek ČNB do buňky B9 v Google tabulce, jedná se list s názvem ceník
  • vypočítáme aktuální cenu G Suite licencí v Českých korunách
  • pro budoucí analýzu si ceny G Suite licencí zapíšeme na další list s názvem historie v Google tabulce
  • aktuální cenu základních G Suite licencí si zapíšeme do kalendáře Google jako celodenní událost
  • odešleme e-mail, kde si vypíšeme aktuální ceny za G Suite licence pro daný týden

Google script můžeme spouštět na základě mnoha událostí. My využijeme možnosti spouštět Google Script v pravidelnou dobu a čas. V našem případě budeme script spouštět v neděli mezi jednou a druhou hodinou raní.

 

Google tabulka je pomyslnou základovou deskou našeho řešení

Doslova a do písmene. Obrázek vydá za tisíc slov a tak šup sem sním. Jak vidíte, jedná se o triviální Google tabulku, ceník G Suite licencí.

To co potřebujeme vyřešit je aktualizovat hodnotu buňky B9 platným kurzem dle ČNB Euro / Česká koruna. Aktualizaci buňky vyřešíme pomocí Google Scriptu.

Kde vytvořím Google Script? V Google tabulce stačí otevřít menu Nástroje -> Editor Scriptu a můžeme se pustit do drobného programování. Cenu v Kč pro dané licence získám prostým výpočtem kde zohledňuji bankovní poplatek za převod např. C2=roundup(B2($B$9+B10);0)

 

Útržek Google Scriptu, jak vlastně ten kurz získáme?

// získání ceny kurzu CNB
 var pageContent = UrlFetchApp.fetch("http://www.cnb.cz/cs/index.html").getContentText();
 var matched = pageContent.match(/<td style="padding-right:1px; padding-left:1px; width:100%;" id="rate_eur" class="rate">(\d+\,*\d*)/);
 var numberAsString = matched[1];

Pomocí funkce UrlFetchApp.fetch( ) načteme celý obsah html stránky (ve zdrojovém html kódu) do proměnné pageContent. V té pak vyhledáme výskyt řetězce (obsahuje css styl, který předchází samotné hodnotě kurzu Eura), kde pomocí regulárního výrazu „vyseparujeme“ kurz Eura.

 

Aktualizace ceny G Suite licencí

Získaný kurz pomocí Google Scriptu zapisujeme do Google tabulky do buňky B9 v listu s názvem ceník pomocí funkce updateCell().

// získání data a posledního řádku z listu Historie
var date = new Date();
var row = getLastRow("historie");

// zapsaní hodnoty kurzu a hodnoty G Suite Basic předplatného do listu Historie k danému datu
var price = updateCell("B9",numberAsString,"ceník");
var valueGSBasic = getCellValue("C2","ceník");
var valueGSBusiness = getCellValue("C3","ceník");
updateCell("A"+ row,date,"historie");
updateCell("B"+ row,valueGSBasic,"historie");
updateCell("C"+ row,valueGSBusiness,"historie");

Zároveň v listu s názvem historie udržuji týdenní update cen G Suite.

 

Kalendáře Google, celodenní událost pro zobrazení aktuální ceny

My chceme cenu za G Suite licence zapsat jako celodenní událost do sekundárního kalendáře Google. V nastavení kalendáře Google si zjistíme ID kalendáře (ID jsem si dovolil pozměnit). ID kalendáře zapíšeme do proměnné id.

// zapsání poplatků za licenci do kalendáře pro předplatné
var id = "cleverity.cz_2d123456789123456222@resource.calendar.google.com";
kalendarPredplatne = CalendarApp.getCalendarById(id);
kalendarPredplatne.createAllDayEvent('Basic ' + roundValue(valueGSBasic, 0) + ' / Business '+ roundValue(valueGSBusiness, 0),date);

Pomocí Google Scriptu aktivujeme sekundární kalendář a následně pomocí funkce createAllDayEvent() zapíšeme požadované údaje jako celodenní událost. V kalendáři výsledek vypadá takto:

 

Nechte si zaslat aktuální ceny předplatného do e-mailové schránky

Dále chceme jednou týdně dostávat e-mailovou zprávu, jejíž součástí budou jednotlivé aktuální ceny G Suite předplatného. K vlastnímu odeslání e-mailu využijeme funkci sendEmail().

K formátování těla emailu použijeme archaické html tagy pro tabulku.

  // odeslání informativního e-mailu s cenou, úkol s aktualizací
  var emails = "radek.pohnan@cleverity.cz";
  var subject = "kalkuluj licence, nebo tě microsoft sežehne zaživa!";
  var from = "kurz-licence@cleverity.cz";
  var message="<table border='0',cellpadding='10',cellspacing ='0', width ='600'>"
  +"<tr>"
  +"<td bgcolor = '#ffffff', Align = 'center'><b>"+"Typ licence G Suite"+"</b></td>"
  +"<td bgcolor = '#ffffff', Align = 'center'><b>"+"Cena"+"</b></td>"
  +"</tr>"
  +"<tr>"
  +"<td bgcolor = '#eeeeee', Align = 'center'>G Suite Basic / měsíc</td>"
  +"<td bgcolor = '#eeeeee', Align = 'center'>"+valueGSBasic+",- Kč</td>"
  +"</tr>"
  +"<tr>"
  +"<td bgcolor = '#cccccc', Align = 'center'>G Suite Business / měsíc</td>"
  +"<td bgcolor = '#cccccc', Align = 'center'>"+valueGSBusiness+",- Kč</td>"
  +"</tr>"
   +"<tr>"
  +"<td bgcolor = '#eeeeee', Align = 'center'>G Suite Basic / rok</td>"
  +"<td bgcolor = '#eeeeee', Align = 'center'>"+(valueGSBasic*12/1.2)+",- Kč</td>"
  +"</tr>"
  +"<tr>"
  +"<td bgcolor = '#cccccc', Align = 'center'>G Suite Business / rok</td>"
  +"<td bgcolor = '#cccccc', Align = 'center'>"+(valueGSBusiness*12)+",- Kč</td>"
  +"</tr>"
  +"</table>"; 
  MailApp.sendEmail({
    to: emails,
    subject: subject,
    htmlBody: message,
    name: from
  });
}

Emailová zpráva pak reálně vypadá takto:

 

Integrace jednotlivých aplikací G Suite pomocí Google Scriptu

Možná je to až moc kostrbatý příklad. Možná ano. Chtěl jsem vám však naznačit, jak je poměrně jednoduché pomocí Google Scriptu přenášet data mezi jednotlivými službami balíčku G Suite. Když to shrnu, vzali jsme si hodnotu kurzu Eura, tu přenesli do tabulky. Následně jsme vytvářeli kalendářovou událost a vše zakončili odesláním emailu. Vše probíhá automatizovaně, bez jakéhokoli našeho zásahu.

Za mě je to jednoznačně jedna z mnoha výhod Google aplikací G Suite.

autor Radek Pohnán

Jsem Google Cloud Partnerem a držitel prestižní certifikace Google Certified Deployment Specialist. Rád vám poradím, zda jsou Google aplikace G Suite vhodné i pro vás. Naučím vás, jak je správně a naplno používat. Ale pokud uvidím, že se pohybujete v jiném světě, na rovinu vám to řeknu.

Okomentovat

Váš e-mail nebude zveřejněn. Povinné údaje jsou označeny *

RYCHLÝ KONTAKTRadek Pohnán
Jak můžu pomoct vám? Napište mi a něco vymyslíme.
KDEKOLIV V ČR NEBO KDE JE INTERNETMěstys Škvorec, Praha - východ
mapa-cleveity-slepa
JSEM SOCIÁLNÍ AJŤÁKPropojíme se?
Preferuji sociální síť Linkedin. Právě tam pro vás publikuji nejvíce novinek, článků a tipů ze světa Cloud technologií.
warengo
RYCHLÝ KONTAKTRadek Pohnán
Jak můžu pomoct vám? Napište mi a něco vymyslíme.
KDEKOLIV V ČR NEBO KDE JE INTERNETMěstys Škvorec, Praha - východ
mapa-cleveity-slepa
JSEM SOCIÁLNÍ AJŤÁKPropojíme se?
Preferuji sociální síť Linkedin. Právě tam pro vás publikuji nejvíce novinek, článků a tipů ze světa Cloud technologií.
warengo

Všechna práva vyhrazena © 2020 Cleverity.cz.

Ilustrace © Ladislava Pechová.

Všechna práva vyhrazena © 2020 Cleverity.cz. Ilustrace © Ladislava Pechová.