GoogleAppsの全ユーザーのカレンダー取得について

4,302 views
Skip to first unread message

ogawa tak

unread,
Aug 6, 2014, 1:03:29 AM8/6/14
to google-app...@googlegroups.com
お世話になっております。

GoogleAppsScriptを用いてGoogleAppsの全ユーザーのカレンダー・予定を取得する方法はありますでしょうか?
一応、実行ユーザーがドメイン全員のカレンダーを自分のカレンダーに追加しておけば可能ではあると思うのですが…。

何かスマートなやり方がありましたら教えて頂けないでしょうか。

どうぞ、よろしくお願いします。


Kousuke TANIGUCHI

unread,
Aug 8, 2014, 5:15:52 AM8/8/14
to google-app...@googlegroups.com
通常ユーザーのメインカレンダーはメールアドレスと同じ、また共有設定では同じドメインの人に閲覧権限を設定するとおもうので、

Admin SDK Directory APIを使用して、ユーザー全員リストアップ
CalendarApp.getCalendarById(id) でCalendarを取得
Calendar.getEventsForDay(date)などでイベント取得

でやりたいことはできそうです。

管理者で実行する必要があるのと、共有設定変更されていた場合は共有してもらう必要がありますね。
本日の予定のカウントするスクリプトは下記のような感じで動きました。

function countEventsOfToday() {
  var allUsers = AdminDirectory.Users.list({
    domain : 'example.com'
  });
  var users = allUsers.users;
  for(var i = 0; i < users.length; i++){
    var user = users[i];
    var calendar = CalendarApp.getCalendarById(user.primaryEmail);
    if(calendar == null){
      continue;
    }
    var count = calendar.getEventsForDay(new Date()).length;
    Logger.log({
      user : user.primaryEmail,
      count : count
    });
  }
}


2014年8月6日水曜日 14時03分29秒 UTC+9 ogawa tak:

ogawa tak

unread,
Aug 11, 2014, 12:37:22 AM8/11/14
to google-app...@googlegroups.com
ご回答ありがとうございます。

掲載頂いたソースを実行してみましたが、
CalendarApp.getCalendarById(id) の部分で取得できるのが、自分のマイカレンダーに追加してある人しか取得できませんでした。

このやり方でやる場合、やはり全員分をマイカレンダーに登録する必要があるのでしょうか。
もしくは、ドメインの設定で何か設定する必要があるのでしょうか。


2014年8月8日金曜日 18時15分52秒 UTC+9 Kousuke TANIGUCHI:

Kousuke TANIGUCHI

unread,
Aug 18, 2014, 10:01:37 PM8/18/14
to google-app...@googlegroups.com
遅レスで失礼します。

私の手元の環境ですと、Google Calendarのマイカレンダーに表示されていなくても
取得できたのですが、以前にいちどマイカレンダーに表示して、非表示としたのかもしれません。

マイカレンダーに登録するのは
CalendarApp.subscribeToCalendarでできるので、
getCalendarByIdの前に、追加するとよいのかもしれません。

試していなくてごめんなさい。




2014年8月11日月曜日 13時37分22秒 UTC+9 ogawa tak:

ogawa tak

unread,
Aug 21, 2014, 12:29:53 AM8/21/14
to google-app...@googlegroups.com
お世話になっております。

CalendarApp.subscribeToCalendarを使って試してみたところ、
こちらの望む通りの動作をすることができました。

ありがとうございました。

2014年8月19日火曜日 11時01分37秒 UTC+9 Kousuke TANIGUCHI:
Reply all
Reply to author
Forward
0 new messages