かずきち。の日記

サーバサイドエンジニアのつぶやき

GoogleAppsScript58行で節約速報の最新記事をGoogleカレンダー自動入力していく

節約速報という割引情報満載のまとめサイトがある

スマホのキャッシュバック、Amazonの割引、コンビニの割引などのキャンペーンが盛りだくさんのサイトである。

setusoku.com
引用:
https://setusoku.com/

非常に有意義なのだが、地域限定だったり、自身に関係のないニュースも多い。
毎回、このニュースサイトを見ているときりがないので、最新記事をGoogleカレンダーに登録をしていく。
ニュースサイトのdeedを取得したら、あとはカレンダーライブラリを使って書き込むだけです。

function sestuyakusokuhoku() {

  // url設定

  var url = 'https://setusoku.com/feed/';

  // namespace設定

  var namespace = XmlService.getNamespace("ht",'https://setusoku.com/feed/');

  // rss取得

  var xml = UrlFetchApp.fetch(url).getContentText();
  var document = XmlService.parse(xml);
  var root = document.getRootElement();
  var channel = root.getChild("channel");
  var items = channel.getChildren("item");
  var link = channel.getChildren("link");

  // sheetに記入

  var sheet = SpreadsheetApp.getActiveSheet();
  var length = items.length;
  var today = new Date();
  var Month = today.getMonth() + 1;

  for(var i = 0; i < length; i++) {

    var title = items[i].getChildText("title");
    var link = items[i].getChildText("link");
    var traffic = items[i].getChildText("approx_traffic",namespace);

    Logger.log(link);
    
    
    //登録するカレンダーIDを呼び出してeventへ格納
    var calendar = CalendarApp.getCalendarById('*******************@group.calendar.google.com');
    
    //イベントのタイトルをtitleへ格納
    Logger.log(title);
    
    var date = new Date();
    // 今日の日付を表示
    Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd'));
    var today = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd');
    const option = {
    description: link,
    location: '節約速報'
  }
    
    Logger.log(today);
    
    //createAllDayEventでカレンダーへイベントを登録
    calendar.createAllDayEvent(title,new Date(today),option);
    
  }
}

feedをparseしながら自動的カレンダーに登録をしましょう。

tonari-it.com
引用:
Google Apps Script で毎日決まった時間にスクリプトを実行するトリガー設定

あとは適当にトリガーをその日の23時辺りに設置すれば完了です。

世の中的なお得なキャンペーンを網羅できるので非常におすすめです。
もしよかったらフォローしてみてください。