メインのコードになります。
CalendarApp.getAllOwnedCalendars()で、所有するすべてのカレンダーを取得します。
getData()にカレンダー名を渡し、その日の予定をゲッツ。
MailApp.sendEmailで、全部のまとめをメール送信する。
じつはこのスクリプトを使わなくても、その日の予定をメールしてくれる機能は、デフォルトで存在します。しかもグラフィカルでわかりやすい,,,
ただ、通知する時間を変更したり、送信先を変えたり柔軟に対応できるので公開しました。いやぁ、プログラムってほんっとにいいもんですね。
function dailySummary(){
var r = CalendarApp.getAllOwnedCalendars();
var num = r.length;
var allText = "";
for(var i = 0; i< num ; i++){
var g = r[i].getName();
allText = allText + getData(g);
}
//メール送信部分
var to = "(任意のメールアドレスを入れてください)";
var subject = "[dairy]本日の予定";
allText = "★本日の予定一覧です。\r\n" + allText;
MailApp.sendEmail(to, subject, allText);
}
2011年7月18日月曜日
2011年7月13日水曜日
[携帯] 各社間SMS開通!
友人(ソフトバンク)からCメールが届き初めてそんなことになっていると気づきました。
料金はどうなっているのか、簡単にまとめましたので、備忘録的に晒し。
イーモバイル以外は送信3.15円、受信無料が多いですねぇ。
DOCOMO
http://www.nttdocomo.co.jp/service/communication/sms/charge/index.html
送信:1回あたり3.15円(送達通知の有無に関わらず)
受信:ショートメッセージの受信は無料です。
au
http://www.au.kddi.com/cmail/index.html
送信料:3.15円/回 (税込)
Cメール受信:0円
softbank(ホワイトプラン)
http://mb.softbank.jp/mb/price_plan/3G/white_plan/#price-system
ソフトバンク同士(送受信無料)
それ以外
送信:3.15円/通
受信:無料
イーモバイル
http://emobile.jp/charge/smartplan.html
送受信:SMS 2.1円/通
無料通話分が適用されるキャリアもあるのでご参考までに。
料金はどうなっているのか、簡単にまとめましたので、備忘録的に晒し。
イーモバイル以外は送信3.15円、受信無料が多いですねぇ。
DOCOMO
http://www.nttdocomo.co.jp/service/communication/sms/charge/index.html
送信:1回あたり3.15円(送達通知の有無に関わらず)
受信:ショートメッセージの受信は無料です。
au
http://www.au.kddi.com/cmail/index.html
送信料:3.15円/回 (税込)
Cメール受信:0円
softbank(ホワイトプラン)
http://mb.softbank.jp/mb/price_plan/3G/white_plan/#price-system
ソフトバンク同士(送受信無料)
それ以外
送信:3.15円/通
受信:無料
イーモバイル
http://emobile.jp/charge/smartplan.html
送受信:SMS 2.1円/通
無料通話分が適用されるキャリアもあるのでご参考までに。
2011年7月9日土曜日
[GAS] getData関数について説明 ~今日の予定をGoogleカレンダーから取得しメールする~
2.それぞれのカレンダーで登録された予定を取得
マイカレンダーを3つ作成しています。
1.デフォルト
2.2番目作成
3.3番目作成
わかりやすい名前で作っています。
このうちのどれかのカレンダーの名前を渡されたときに
そのカレンダーの今日の予定を取得し、まとめてリターンをします。
まずはコード掲載
function getData(name){
//開始時間を設定
var d1 = new Date();
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);
//終了時間を設定
var d2 = new Date();
d2.setHours(23);
d2.setMinutes(59);
d2.setSeconds(59);
if (name != "" & name != "cancel"){
var cal = CalendarApp.openByName(name);
var data = cal.getEvents(d1,d2);
var num = data.length;
var allText = ""; //すべてのテキスト
var s = ""; //開始時間
var e = ""; //終了時間
var t = ""; //予定のタイトル
var d = ""; //予定の説明
var i = 0;
allText = "■" + name + "\r\n\r\n";
for(i = 0; i< num ; i++){
if (data[i]) {
s = "・" + t2c(data[i].getStartTime()) + "~";
e = t2c(data[i].getEndTime()) + "\r\n";
t = " " + data[i].getSummary() + "\r\n";
d = data[i].getDescription();
if(d){
d = " " + d + "\r\n";
}
allText = allText + s + e + t + d + "\r\n";
}
}
return allText;
}
}
~コード解説~
予定を取得するのは、「getEvents(d1,d2)」になります。
d1からd2までの時間の予定を取得します。
今日すべての予定なので、開始時間は0:00、終了時間は23:59にしています。
getEventsで取得したイベントのデータオブジェクトから、各種のデータを取得します。
イベントの各種データは以下のメソッドで取得できます。
開始時間→getStartTime()
終了時間→getEndTime()
タイトル→getSummary()
説明→getDescription()
時間に関しては前回説明した、t2c関数で任意のフォーマットに変換しています。
allTextにデータを追加していき、そのカレンダーから今日の予定をすべて取得したらリターンするようになっています。予定がなくても「予定なし」の意味を込めてカレンダー名のみリターンされます。
マイカレンダーを3つ作成しています。
1.デフォルト
2.2番目作成
3.3番目作成
わかりやすい名前で作っています。
このうちのどれかのカレンダーの名前を渡されたときに
そのカレンダーの今日の予定を取得し、まとめてリターンをします。
まずはコード掲載
function getData(name){
//開始時間を設定
var d1 = new Date();
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);
//終了時間を設定
var d2 = new Date();
d2.setHours(23);
d2.setMinutes(59);
d2.setSeconds(59);
if (name != "" & name != "cancel"){
var cal = CalendarApp.openByName(name);
var data = cal.getEvents(d1,d2);
var num = data.length;
var allText = ""; //すべてのテキスト
var s = ""; //開始時間
var e = ""; //終了時間
var t = ""; //予定のタイトル
var d = ""; //予定の説明
var i = 0;
allText = "■" + name + "\r\n\r\n";
for(i = 0; i< num ; i++){
if (data[i]) {
s = "・" + t2c(data[i].getStartTime()) + "~";
e = t2c(data[i].getEndTime()) + "\r\n";
t = " " + data[i].getSummary() + "\r\n";
d = data[i].getDescription();
if(d){
d = " " + d + "\r\n";
}
allText = allText + s + e + t + d + "\r\n";
}
}
return allText;
}
}
~コード解説~
予定を取得するのは、「getEvents(d1,d2)」になります。
d1からd2までの時間の予定を取得します。
今日すべての予定なので、開始時間は0:00、終了時間は23:59にしています。
getEventsで取得したイベントのデータオブジェクトから、各種のデータを取得します。
イベントの各種データは以下のメソッドで取得できます。
開始時間→getStartTime()
終了時間→getEndTime()
タイトル→getSummary()
説明→getDescription()
時間に関しては前回説明した、t2c関数で任意のフォーマットに変換しています。
allTextにデータを追加していき、そのカレンダーから今日の予定をすべて取得したらリターンするようになっています。予定がなくても「予定なし」の意味を込めてカレンダー名のみリターンされます。
[GAS] t2c関数について説明 ~今日の予定をGoogleカレンダーから取得しメールする~
3.時間をフォーマットに沿って表示
いきなり順番無視ですが、簡単なところから解説します。
といってもこの部分はそのままですが、取得した日付データを
任意のフォーマットに変えてリターンします。
function t2c($t){
return Utilities.formatDate(new Date($t),"JST","HH:mm");
}
Utilities.formatDateの解説
以下の引数を設定します。
Utilities.formatDate(
日付の元データ,
タイムゾーン,
フォーマット
);
上記の例であれば以下の内容となります。
日付のデータとして→Fri Jul 08 19:00:00 PDT 2011 (←引数で与えられた日時)
タイムゾーン(日本時間を指定)→JST
時間表示→HH:mm
リターン(日本時間 24時間表記)→11:00
カレンダーから取得した日付データを、任意の形式で表示する時に利用します。
いきなり順番無視ですが、簡単なところから解説します。
といってもこの部分はそのままですが、取得した日付データを
任意のフォーマットに変えてリターンします。
function t2c($t){
return Utilities.formatDate(new Date($t),"JST","HH:mm");
}
Utilities.formatDateの解説
以下の引数を設定します。
Utilities.formatDate(
日付の元データ,
タイムゾーン,
フォーマット
);
上記の例であれば以下の内容となります。
日付のデータとして→Fri Jul 08 19:00:00 PDT 2011 (←引数で与えられた日時)
タイムゾーン(日本時間を指定)→JST
時間表示→HH:mm
リターン(日本時間 24時間表記)→11:00
カレンダーから取得した日付データを、任意の形式で表示する時に利用します。
[GAS] 関数説明 ~今日の予定をGoogleカレンダーから取得しメールする~
まずは全スクリプトを掲載します。解説は次回から!
function dailySummary(){
var r = CalendarApp.getAllOwnedCalendars();
var num = r.length;
var allText = "";
for(var i = 0; i< num ; i++){
var g = r[i].getName();
allText = allText + getData(g);
}
//メール送信部分
var to = "(任意のメールアドレスを入れてください)";
var subject = "[dairy]本日の予定";
allText = "★本日の予定一覧です。\r\n" + allText;
MailApp.sendEmail(to, subject, allText);
}
function getData(name){
//開始時間を設定
var d1 = new Date();
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);
//終了時間を設定
var d2 = new Date();
d2.setHours(23);
d2.setMinutes(59);
d2.setSeconds(59);
if (name != "" & name != "cancel"){
var cal = CalendarApp.openByName(name);
var data = cal.getEvents(d1,d2);
var num = data.length;
var allText = ""; //すべてのテキスト
var s = ""; //開始時間
var e = ""; //終了時間
var t = ""; //予定のタイトル
var d = ""; //予定の説明
var i = 0;
allText = "■" + name + "\r\n\r\n";
for(i = 0; i< num ; i++){
if (data[i]) {
s = "・" + t2c(data[i].getStartTime()) + "~";
e = t2c(data[i].getEndTime()) + "\r\n";
t = " " + data[i].getSummary() + "\r\n";
d = data[i].getDescription();
if(d){
d = " " + d + "\r\n";
}
allText = allText + s + e + t + d + "\r\n";
}
}
return allText;
}
}
function t2c($t){
// time2convert
return Utilities.formatDate(new Date($t),"JST","HH:mm");
}
function dailySummary(){
var r = CalendarApp.getAllOwnedCalendars();
var num = r.length;
var allText = "";
for(var i = 0; i< num ; i++){
var g = r[i].getName();
allText = allText + getData(g);
}
//メール送信部分
var to = "(任意のメールアドレスを入れてください)";
var subject = "[dairy]本日の予定";
allText = "★本日の予定一覧です。\r\n" + allText;
MailApp.sendEmail(to, subject, allText);
}
function getData(name){
//開始時間を設定
var d1 = new Date();
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);
//終了時間を設定
var d2 = new Date();
d2.setHours(23);
d2.setMinutes(59);
d2.setSeconds(59);
if (name != "" & name != "cancel"){
var cal = CalendarApp.openByName(name);
var data = cal.getEvents(d1,d2);
var num = data.length;
var allText = ""; //すべてのテキスト
var s = ""; //開始時間
var e = ""; //終了時間
var t = ""; //予定のタイトル
var d = ""; //予定の説明
var i = 0;
allText = "■" + name + "\r\n\r\n";
for(i = 0; i< num ; i++){
if (data[i]) {
s = "・" + t2c(data[i].getStartTime()) + "~";
e = t2c(data[i].getEndTime()) + "\r\n";
t = " " + data[i].getSummary() + "\r\n";
d = data[i].getDescription();
if(d){
d = " " + d + "\r\n";
}
allText = allText + s + e + t + d + "\r\n";
}
}
return allText;
}
}
function t2c($t){
// time2convert
return Utilities.formatDate(new Date($t),"JST","HH:mm");
}
2011年7月7日木曜日
[GAS]dailySummary ~今日の予定をGoogleカレンダーから取得しメールする~
手始めに作ったのは「Googleカレンダーに登録したすべてのカレンダーからその日の予定をメールする」というものです。スクリプト名は「dailySummary」
このスクリプトは3つの関数に分けて作られました。
肝心のコード類は次回以降掲載します。
このスクリプトは3つの関数に分けて作られました。
- すべてのカレンダーを取得
- それぞれのカレンダーで登録された予定を取得
- 時間をフォーマットに沿って表示
肝心のコード類は次回以降掲載します。
Google Apps Script
・・・ Google Apps Script ・・・
Microsoft Officeに搭載されているVBAのごとく、Googleのサービスに自分でいろいろな機能をつけたり自動化したりできるサービスです。ちょっと試しにスクリプトを作りましたので、拙作ながらご紹介いたします。
Microsoft Officeに搭載されているVBAのごとく、Googleのサービスに自分でいろいろな機能をつけたり自動化したりできるサービスです。ちょっと試しにスクリプトを作りましたので、拙作ながらご紹介いたします。
登録:
投稿 (Atom)
ザ・シークレットサービス
大層ななまえですが、選択した文字列をシークレットウインドウ内で、 Google検索するというものです。 https://docs.google.com/open?id=0B58uK3aQr15IM0ItWk1WVnFUWnVleXJVWEhqUktCdw 1...

-
2.それぞれのカレンダーで登録された予定を取得 マイカレンダーを3つ作成しています。 1.デフォルト 2.2番目作成 3.3番目作成 わかりやすい名前で作っています。 このうちのどれかのカレンダーの名前を渡されたときに そのカレンダーの今日の予定を取得し、まと...
-
まずは全スクリプトを掲載します。解説は次回から! function dailySummary (){ var r = CalendarApp.getAllOwnedCalendars(); var num = r.length; var a...
-
PHPで文字コードの判定を行う際、mb_detect_encodingをよく使います。 ベンリなんですが、いまいち判定の精度がよくありません。 それで、PHPに頼るのはやめて、linuxコマンド直打ちを利用します。 利用するコマンドは、「 nkf 」です。 以...