ときさんブログ

ヘルニアン・ラプソディ

2014年サッカーW杯全試合放送予定カレンダーを作った話

いよいよですね!4年に一度の寝不足期間の再到来となりそうです!それは…そう!!ワールドカップですよ!!

f:id:akulog:20140529124235j:plain

クゥ〜〜〜ッ!!

最初に

プログラミングなんて興味ねぇよって人はこちらからカレンダーを直接登録しちゃってください。

もうこうなったら全試合観たい!

もうサッカー観過ぎて過労死しちゃう!!でも、どの試合をどのチャンネルでやるの?ってググったらこんな記事発見!!

2014年W杯ブラジル大会のNHK、民放の全放送スケジュールが決定 – サッカーキング

f:id:akulog:20140529124235j:plain

これはクゥ〜〜〜ッ!!

よーし、これをベースにとりあえずスプレッドシート作っちゃえ!

よし!出来たよ!

W杯放送一覧 - Google スプレッドシート

f:id:akulog:20140529124235j:plain

出来たクゥ〜〜〜ッ!!

突っ込むカレンダーを作るよ!!

f:id:akulog:20140529125101p:plain

最後は保存してね!!

f:id:akulog:20140529124235j:plain

カレンダークゥ〜〜〜ッ!!

カレンダーを一般公開するよ!!

f:id:akulog:20140529125256p:plain

これも最後は保存してね!!

f:id:akulog:20140529124235j:plain

公開出来たクゥ〜〜〜ッ!!

スプレッドシートのデータを元にカレンダーにイベント登録するスクリプト書くよ!!

例のGoogle Apps Scriptでやります。前にもやった要領でさっき作ったスプレッドシートから「ツール」→「スクリプトエディタ」

f:id:akulog:20140529131008p:plain

カレンダーIDだけは自分の環境に合わせるんだよ!後述するよ!

function setWorldCup() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var startRow = 1;
  var numRows = sheet.getLastRow();
  var range = sheet.getRange(1, 1, numRows, 2);
  var values = range.getValues();
  
  var id = ""; // カレンダーID
  var calendar = CalendarApp.getCalendarById(id);

  for(var i = 2; i <= values.length; i++){
    var dateTimeFrom = new Date(sheet.getRange(i,1).getValue());
    var dateTimeTo = new Date(dateTimeFrom).addHours(2);
    var eventTitle = sheet.getRange(i,2).getValue();
    calendar.createEvent(eventTitle, dateTimeFrom, dateTimeTo);
  }
}

Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}

f:id:akulog:20140529124235j:plain

コピペクゥ〜〜〜ッ!!

カレンダーIDを確認するよ!!

カレンダーのプロパティを確認するよ!

f:id:akulog:20140529125927p:plain

「カレンダーの情報」タブのここにあるのがカレンダーIDだよ!

f:id:akulog:20140529125948p:plain

f:id:akulog:20140529124235j:plain

さっきのvar id = ""にコピペクゥ〜〜〜ッ!!

スクリプトを走らせてカレンダーにイベントを登録するよ! スクリプトエディタで…

f:id:akulog:20140529131406p:plain

初回承認処理があるけど今回は省略する!!無事にイベントが登録されるとカレンダーがこんな感じになるよ。

f:id:akulog:20140529132157p:plain

f:id:akulog:20140529124235j:plain

イベントが登録されてクゥ〜〜〜ッ!!

最後に

こんなの面倒臭ぇよ!!って言う方もいるでしょう。今回、僕が作ったカレンダーを一般公開していますので、こっちを直接登録しちゃった方がスマホとかで確認できて楽です。

iOSの場合は設定→メール/連絡先/カレンダー→アカウントを追加→その他→照会するカレンダーを追加→iCalのURLをペースト

Androidは多分xml

f:id:akulog:20140529124235j:plain

それをもっと早クゥ〜〜〜ッ!!

© 2013 ときさんブログ all rights reserved.