ブックマークを使ってGoogleカレンダーに登録してみた

ブラウザで開いたページのタイトルとURLをカレンダーの日付に紐付けたいと思ったので、専用のブックマークを作ることにした。

ifttt のサービスを使って、Google カレンダーに登録する。

ifttt.com

Googleカレンダーの言語が「英語」であれば、「Quick Add」の機能が使えることがわかったので、英語に設定。

ryoichi0102.hatenablog.com

これで、「タイトルが入る Jan 01, 2020」 のように書くと、その日付にタイトルを登録できる。

ifttt の設定はこちら。

ブラウザから呼ぶブックマークは、javascriptで書いて、iftttになげる。

例:1月1日の場合がこちら

javascript:(function(){
var m = 1;
var d = 1;
var today = new Date();
var yyyy = today.getFullYear();
var mm = ('0' + m).slice(-2);
var dd = ('0' + d).slice(-2);
var day = new Date(yyyy,mm,dd,0,0,0);
if(day < today){
    yyyy+=1;
}
var mstr = "";
switch(mm){
    case "01":mstr = "Jan";break;
    case "02":mstr = "Feb";break;
    case "03":mstr = "Mar";break;
    case "04":mstr = "Apr";break;
    case "05":mstr = "May";break;
    case "06":mstr = "Jun";break;
    case "07":mstr = "Jul";break;
    case "08":mstr = "Aug";break;
    case "09":mstr = "Sep";break;
    case "10":mstr = "Oct";break;
    case "11":mstr = "Nov";break;
    case "12":mstr = "Dec";break;
}
var ymd = mstr + " " + dd + ", " + yyyy;
location.href = 'https://???.??/webhook/index.php?event=regist_google_calender&value1=' + encodeURI(document.title) + '&value2=' + encodeURI(document.URL) + '&value3=' + ymd;
})();

1月2日の場合は、

var m = 1;

var d = 2;

12月31日の場合は、

var m = 12;

var d = 31;

と設定する。

ブラウザに登録したブックマークをクリックして、

以下のURLにアクセス。

https://???.??/webhook/index.php?event=regist_google_calendervalue1=何ゴト?&value2=https://www.nanigoto.net/&value3=Jan 01, 2020

index.phpレンタルサーバーや、heroku などに置く)

<?php

if(!isset($_GET["event"])){
    echo "Nothing!";
    return;
}

$event = $_GET["event"];
echo $event;

$data = array();

if(isset($_GET["value1"])){
    $data["value1"] = $_GET["value1"];
}
if(isset($_GET["value2"])){
    $data["value2"] = $_GET["value2"];
}
if(isset($_GET["value3"])){
    $data["value3"] = $_GET["value3"];
}

var_dump($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://maker.ifttt.com/trigger/'.$event.'/with/key/XXXXXXXXXXXXXXXXXXXX');
$result=curl_exec($ch);
echo 'RETURN:'.$result;
curl_close($ch);

?>

以下のような文字列が返ってくる。

regist_google_calenderarray(3) { ["value1"]=> string(12) "何ゴト?" ["value2"]=> string(25) "https://www.nanigoto.net/" ["value3"]=> string(12) "Jan 01, 2020" } RETURN:Congratulations! You've fired the regist_google_calender event

これで、サイトのURLとタイトルがカレンダーに登録できる。

ブックマーク(Javascript) → サーバー(PHP) → ifttt(webhook) → Googleカレンダー

という流れ。