カテゴリー内の他の記事

Googleカレンダー連携 - Garoonの予定をGoogleカレンダーに表示 -

フォローする

(著者:サイボウズ 竹内 能彦)

はじめに

Googleカレンダー使っていますか?自分の予定と他の方の予定を並べて表示したり、予定を共有したり出来てとっても便利ですよね。
そこにGaroonの予定を並べて見られたらもっと便利になると思いませんか?

そんな思い付きからGaroonの予定をGoogleカレンダーに表示する連携プログラムを作成しました。事前準備が少し大変ですが、皆さん是非使ってみてください。

概要

連携プログラムは以下の処理をコマンドラインから実行できるサンプルプログラムです。

  • Garoonに登録された予定をGoogleカレンダーに登録
  • Garoonで更新された予定をGoogleカレンダーに反映
  • Garoonから削除された予定をGoogleカレンダーから削除

Googleカレンダーに登録する情報はGaroonの予定の「開始日時」、「終了日時」、「施設」、「メモ」、「コメント」、「参加者」です。

動作環境

  • プログラム実行用端末(Java8が動作し、Garoon、Googleカレンダーにネットワーク接続できること)
    2018年3月現在、Java9では動作しないことを確認しています。
  • Garoon on cybozu、パッケージ版 サイボウズ ガルーン3.0.0以降
  • Googleカレンダー

Garoon on cybozu、Googleカレンダーは2018年2月版で確認しています。

事前準備

実行するには連携プログラムの設定だけでなく、GoogleアカウントやGoogleカレンダーの設定が必要になります。
また、GoogleアカウントやGoogleカレンダーの設定内容を連携プログラムの設定に利用するため、メモが必要な項目はその都度注釈を入れてあります。

※現在のGGsyncはOAuth2.0にも対応していますが、本ページではサービスアカウントキー認証を利用します。

 

1.Googleアカウント作成

下記URLから、Googleアカウントを作成します。Googleアカウントを取得済みの方はログインしてください。

https://accounts.google.com/SignUp

2.Google APIの利用設定

下記URLから、プロジェクトを作成します。

https://console.developers.google.com/project

 

プロジェクト名には適当な値を入力してください。

google-setting1.png

 

プロジェクトの作成完了後、Google Calendar APIを検索し、

google-setting2.png

 

Google Calendar APIを有効にします。

google-setting3.png

 

認証情報を作成します。

google-setting4.png

 

下記画像の通りの内容を選択し、「必要な認証情報」をクリックします。

google-setting5.png

 

サービスアカウント名には適当な値を入力し、キーのタイプはP12を選択します。

google-setting6.png

 

役割なしで作成します。

google-setting7.png

自動ダウンロードされたP12キー(以下、秘密鍵(拡張子がp12))は以降の手順で利用しますので任意のフォルダに保存します。

 

次にサービスアカウント IDを確認します。
画面右の「サービスアカウントの管理」をクリックし、

google-setting9.png

 

表示されたサービスアカウント IDをメモします。(以降の手順で利用します)

google-setting10.png

 

3.Googleカレンダーの作成

下記URLから、Garoonのスケジュールを連携させるGoogleカレンダーを作成します。

https://www.google.com/calendar

 

カレンダーの作成完了後、Googleカレンダー設定の「このカレンダーを共有」タブを開きます。先ほどのメールアドレスに予定の変更権限を付与し、保存します。

google-setting10.png

 

Googleカレンダー設定の「カレンダー情報」タブを開き、カレンダーIDを確認します。カレンダーIDは以降の手順で利用しますのでメモしてください。

4.連携プログラムの設定

プログラム実行用端末に連携プログラムを動作させるフォルダを作成します。本設定では例として「C:/GGsync」を利用します。
秘密鍵を「C:/GGsync」に移動します。
実行ファイル設定ファイルをダウンロードしてください。ソースはGitHubで管理しています。(外部サイトが開きます)

実行ファイル「GGsync.jar」と設定ファイル「GGsync.properties」を「C:/GGsync」に移動します。

設定ファイル「GGsync.properties」をテキストエディタで開き、コメントに従い設定します。
Googleカレンダーに登録する予定の色は1から11までの数値を指定できます。下記の色を参考に選択してください。

 

各カラーIDのカラーコードはこちらのコメントから確認できます。
(tomomo85さん 情報ありがとうございます)

 

実行手順

プログラム実行用端末でコマンドプロンプトを起動し、以下のコマンドを入力します。

> java -jar C:/GGsync/GGsync.jar C:/GGsync

コマンドの形式は「 java -jar 実行ファイルのパス 設定ファイルが存在するフォルダ」です。
「The sync completed.」と表示されればスケジュール連携に成功しています。

実行結果は設定ファイルが存在するフォルダ配下のGGsync.db(例ではC:/GGsync/GGsync.db)に保存します。GGsync.dbは次回実行時の差分反映に利用します。

プロキシ経由の実行

プロキシを経由する必要がある場合は下記のオプションを追加して実行してください。

> java -Dhttp.proxyHost=ホスト名 -Dhttp.proxyPort=ポート番号 -Dhttps.proxyHost=ホスト名 -Dhttps.proxyPort=ポート番号 -jar C:/GGsync/GGsync.jar C:/GGsync

オプションの詳細はこちら(Oracle社のドキュメントページが開きます)

セキュアアクセス利用時の実行

セキュアアクセスを利用する必要がある場合は、クライアント証明書をGGsync.jarと同じディレクトリに保存し、下記のオプションを追加して実行してください。

> java -Djavax.net.ssl.keyStore=xxxx.pfx -Djavax.net.ssl.keyStorePassword=xxxx -Djavax.net.ssl.keyStoreType=PKCS12 -jar GGsync.jar .

実行例

下記がGaroonのスケジュール、実行結果、予定が反映されたGoogleカレンダーの例になります。

・Garoonのスケジュール

 

・連携プログラムの実行結果

 

・Googleカレンダー(プライベートな予定と並べて表示)

 

Garoonの予定の「メモ」、「コメント」はGoogleカレンダーの「説明」にまとめて登録します。

 

Garoonの予定が変更された場合は、Googleカレンダーの予定を削除してから再登録します。
下記が変更時の実行例になります。

 

Garoonの予定が削除された場合は、Googleカレンダーの予定を削除します。
下記が削除時の実行例になります。

定期実行

タスクスケジューラなどを利用することで、定期的にGaroonの予定をGoogleカレンダーに反映できます。
是非試してみてください。

連携プログラムの更新履歴

2015/3/30 繰り返し予定が正常に登録されない不具合を改修しました。
2015/4/24 終了時間未指定の予定がエラーになる不具合を改修しました。
2015/6/18 連携失敗時に詳細なエラーを出力するように修正しました。
2015/9/16 日本語文字のアカウント名に対応しました。
2016/1/14 Googleカレンダーに「参加者」を登録する機能を追加しました。
2016/3/24 ソースコードをGitHubに移しました。
2017/3/21 セキュアアクセス利用時の実行オプションを追記しました。
2017/9/21 ソースコードにライセンス表記を追加しました。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
三上   直樹

竹内様

ガルーンを社内イントラで使用しています。

・ガルーンのスケジュールをテキストファイルでダウンロード

・テキストファイルからGoogleカレンダーと同期

と、2ステップで利用することは可能でしょうか。

 

Avatar
竹内 能彦

三上様

ガルーンのご利用ありがとうございます。

iCalを利用することで可能です。詳細は下記をご確認ください。

・iCalendarファイルに予定のデータを書き出す
https://help.cybozu.com/ja/g42/user/application/scheduler/icalendar.html

・Google カレンダーへの予定の読み込み
https://support.google.com/calendar/answer/37118?hl=ja

 

また、ガルーンの標準機能に関することですので今後は下記サポートにお問い合わせください。

電話でもご相談を承っております。

https://garoon.cybozu.co.jp/support/user_package/

Avatar
水口 剛

初めてGGsyncを使用させていただこうと設定をしているのですが、

以下のようなエラーが発生して同期が終了しません。

原因は何が考えられますでしょうか。

①Proxyを使用しない場合

c:\>java -jar c:/GGsync/GGsync.jar c:/GGsync

ERROR 12:38:30 401 Unauthorized
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenRe
sponseException.java:105)

②Proxyを使用した場合

C:\>java -Dhttp.proxyHost=IP -Dhttp.proxyPort=Port -Dhttps.proxyHo
st=IP -Dhttps.proxyPort=Port -jar c:/GGsync/GGsync.jar c:/GGsync

ERROR 12:38:30 401 Unauthorized
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenRe
sponseException.java:105)

初歩的な問題かもしれませんが、ご確認のほどよろしくお願いいたします。

Avatar
竹内 能彦

水口さん

GoogleCalendarの認証に失敗してそうです。

「Google APIの利用設定」の内容に間違いがないか再確認してみてください。(情報が古かったのでアップデートしてます)

Avatar
坂下 充範

初めまして。

下記エラーが出て進まない状況になってしまいました。

ご教示頂け内でしょうか・・・・

INFO 2017/05/17 15:17:46(GGsync:main:77) The sync beginning with normal mode.
ERROR 2017/05/17 15:17:47(GGsync:main:443) Transport error: 404 Error:
org.apache.axis2.AxisFault: Transport error: 404 Error:
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:172)
at com.cybozu.GGsync.main(GGsync.java:162)

Avatar
T2

坂下さん

私も以前同じようなメッセージのエラーで質問しましたので、外しているかもしれませんが

コメントさせて頂きます。

クライアントのパスワードの更新を定期的に行われているがGGsyncのPropertiesの方を

更新し忘れているといことはありませんか?

 

Avatar
坂下 充範

T2さん

コメント、ありがとうございます。

ガルーンのログインPWをシステム上更新していてGGsync.propertiesファイル内のPW部分を

更新していないかと言う事ですが、問題無く同じでございます。

GGsync.properties内のgaroon.passwordをコピーしてシステムログイン画面に貼り付けて

ログイン出来ましたので・・・

Linux版の2.1.3だと対応出来ないのでしょうか・・・

GGsync.propertiesのserver-nameはlinux環境なので

http://・・・・・・・・/cgi-bin/cbgrn/grn.cgi

としているのですが

Avatar
竹内 能彦

坂下さん

2.1.3というのはガルーンのバージョンでしょうか。

本文の動作環境に記載してある通り、ガルーン 3.0.0以上が対象になります。

Avatar
坂下 充範

竹内さん

コメント、ありがとうございます。

すいません。動作環境、しっかり見ておりませんでした。

内容、承知しました。

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

Avatar
Nikita Kamaev

まさに自分が作ろうとしていたアプリです。

ありがとうございます。

1つだけ残念な点は、社内のグーグルアプリを使っているとカレンダーを共有して編集権限を付与できないことでした。

サイボウズさんの関係のないところですがね!

あらためてありがとうございます。

Nikita Kamaevにより編集されました
Avatar
demachi

 

お世話になっております。


Googleカレンダーとの同期をしてみたい…
と思いこの記事を見つけたので、初心者ではありますが試しているところであります。

とりあえず手順通りに設定・実行してみましたが、下記のようなErrorが出ました。
これは何を意味しているのでしょうか。
恐れ入ります、ご教示くださいますようお願いいたします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

INFO 14:23:29 The sync beginning with normal mode.
log4j:WARN No appenders could be found for logger (org.apache.axis2.util.Loader).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoSuchMethodError: com.cybozu.garoon3.common.CBServiceClient.getApiVersion()Ljava/lang/Integer;
at com.cybozu.GGsync.main(GGsync.java:164)

C:\Users\user>

Avatar
竹内 能彦

kasaiさん

以前追加した関数がないというエラーが出てますね・・・うーん

jarファイルを以下の物と置き換えてもエラー発生しますでしょうか。

https://developer.cybozu.io/hc/article_attachments/115004772283/GGsync.jar

これでも発生するとなると解決は難しいかもしれません。

Avatar
demachi

 

竹内 様

お世話になっております。

URLよりダウンロードしたものを使用しましたが、同じエラーが出てしまいました。
初心者&勉強中なので、恐らくどこか私の設定にミスがあるのだと思います。
勉強してから再挑戦したいと思います!!

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

Avatar
にしかわ

Outlook用のシンクツールも欲しいです。

Avatar
cybozu Development team

にしかわ様
いつもお世話になっております。
cybozu developer network 運営事務局です。

フィードバックいただきありがとうございます。
この記事の作者にお伝えしておきます。

引き続きよろしくお願いいたします。

 

cybozu Development teamにより編集されました
Avatar
y.shimizu

はじめまして。当方まったくの初心者ですが、Garoonとgoogleの連携にチャレンジしております。

下記のエラーが出てしまいます。考えられる原因や対応などありましたらご教示下さいますと幸いです。


INFO 2017/10/24 13:46:55(GGsync:main:83) The sync beginning with normal mode.
ERROR 2017/10/24 13:46:58(GGsync:main:449) Transport error: 520 Error: Garoon Error
org.apache.axis2.AxisFault: Transport error: 520 Error: Garoon Error
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:178)
at com.cybozu.GGsync.main(GGsync.java:180)

Avatar
T2

y.shimizuさん

2017/5/17の書き込みと似ていますので、ガルーンのバージョンを追記された方が良いと思います。

Avatar
y.shimizu

T2さま

ありがとうございます。確かにそうですね。

当方、クラウド版を使用しております。

Avatar
竹内 能彦

y.shimizuさん

Javaの実行環境からGaroonのスケジュール機能が利用可能でしょうか。

例えば以下のようなことが考えられます。

・スケジュールが使用停止になっている(これはないと思いますが)

・アプリケーションの利用ユーザーの設定で、Javaの実行環境からはスケジュール利用が許可されていない

 https://garoon.cybozu.co.jp/support/whatsnew/package/171010.html#first-07

 

上記に該当しない場合は、解決は難しそうです。

 

Avatar
ゆうき

竹内様

お世話になります。

1点質問なのですが、本ツールを利用してGmailに登録された予定について、

【sync.before.days=】で指定した日数が経過すると登録されたGmailの予定から削除されてしまうように見えます。

上記設定値の上限はありますか?

また、挙動として【sync.before.days=】や【sync.after.days=】に指定した値分、

ローカルのlogやdbに保存されるものだと思いますが、

長期間指定した場合に毎回期間分の予定を全なめするなど、過負荷になるような挙動になるものでしょうか?

最後に、Gmailに一度登録された過去の予定については削除されないような挙動はできないものでしょうか?

 

以上、よろしくお願い致します。

Avatar
竹内 能彦

ゆうき様

お世話になります。

日数の指定ですが、プログラムでは上限を設けていません。

長期間指定すると負荷は重くなります。
スケジュール取得でガルーンの負荷が重くなり、差分チェックでローカルDBの負荷が重くなります。

Google側の予定を削除しない機能の実装予定はありません。

Avatar
katmai

竹内様

初めまして.ガルーン4とグーグルカレンダーの同期方法を探して本サイトにたどり着きました.

まったくの素人ですが,本サイトに従い実行したところ,下記エラーとなりました.

お手数ですが,考えられる原因や対策についてご教示いただけますと幸いです.

INFO  2017/12/28 15:52:59(GGsync:main:83) The sync beginning with normal mode.
ERROR 2017/12/28 15:53:01(GGsync:main:449) Transport error: 302 Error: Found
org.apache.axis2.AxisFault: Transport error: 302 Error: Found
    at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:396)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
    at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
    at com.cybozu.garoon3.common.CBServiceClient.sendReceive(CBServiceClient.java:178)
    at com.cybozu.GGsync.main(GGsync.java:168)

Avatar
倉田

本日、このサイトに辿りついて同期設定が可能になりました。

そこで質問(要望)ですが、

1.予定メニューの非連携

 予定メニューをgoogleカレンダーのタイトルに連携させない方法はありますでしょう

2.終日予定登録

 0:00~23:59(終日)の予定をgoogleカレンダーの終日として登録する方法はありますか

素人的な質問で申し訳ありませんが、よろしくお願いします。

 

倉田により編集されました
Avatar
竹内 能彦

katmai様

おそらくですが、ガルーンサーバーの指定が正しくないようです。
GGsync.propertiesのgaroon.urlを見直してください。
ブラウザでアクセスしたときのURL前部と一致していますでしょうか。

ないとは思いますが、プロキシを経由している場合は記事本文に従いオプションを追加してください。

これでも発生するとなると解決は難しいかもしれません。

 

倉田様

ソースコードはGitHubにて公開していますので、そちらを編集すればどちらも対応可能です。

> 1.予定メニューの非連携
こちらは対応する予定はありません。

> 2.終日予定登録
こちらは対応しようとしたのですが、繰り返し予定や繰り返し予定の除外設定に
かなり影響があることがわかりました。そのため、現時点では保留しています・・・

Avatar
Yasuhiro Miyata

googleカレンダーとの連携に挑戦している初心者ですが、2015/5/19のT2様のように連携ができません。

以下引用(タイトル・時間等は異なります)

------------------------------------------------------------------------------------

c:\GGsync>java -jar C:/GGsync/GGsync.jar C:/GGsync 
INFO 14:35:24 The sync beginning with normal mode.
INFO 14:37:03 [ADD] Title:hoge 
ERROR 14:37:24 connect timed out
java.net.SocketTimeoutException: connect timed out

at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)

------------------------------------------------------------------------------------

その後、自分なりに調べてみたのですが、IEの設定が「自動構成スクリプトを使用する」となっており、そこから得たプロキシサーバーを使っているようです。

これが原因なのでしょうか?そうであるなら解決策はありますでしょうか?

環境はクラウド版です。ご教授お願いいたします。

 

Yasuhiro Miyataにより編集されました
Avatar
竹内 能彦

Yasuhiro Miyata様

ご自身での調査ありがとうございます。
おそらくT2様と同じ原因でグーグルカレンダーへの接続がタイムアウトしています。
記事本文の項目「プロキシ経由の実行」に従い、オプションを追加してください。

Avatar
Yasuhiro Miyata

竹内様

IEのインターネットオプション-接続-LANの設定-「自動構成スクリプトを構成する」にhttp://adsrvroot2.rad.xxxxxxx.co.jp/pac/proxy.pac (xは伏字)というアドレスが入っているのですが、

試しにここにアクセスすると「proxy.pac」というファイルが得られます。このファイルをメモ帳で開くと数種類のそれっぽいIPアドレスとポート番号が記載されています。

一部引用します。

---------------------------------------------------------------------------------------------------

function FindProxyForURL(url,host){
 var MyIP = myIpAddress();
 var ProxyDirectIWSS = "PROXY X.X.X.X:8008; PROXY X.X.X.X:8008";
 var ProxyDirectIWSVA1 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
 var ProxyDirectIWSVA2 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
// var ProxyDirectIWSVA2 = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
 var ProxyISWM = "PROXY X.X.X.X:8080";
// var ProxyISWM = "PROXY X.X.X.X:8080; PROXY X.X.X.X:8080";
 var ProxyNOISWM = "PROXY X.X.X.X:8080";
 var FindIP = dnsResolve(host);
 var CtrlFL = url.substring(url.lastIndexOf("."));
 var LDBIP  = MyIP.substr(MyIP.length-1)%2;

---------------------------------------------------------------------------------------------------

※Xは伏字です。それぞれアドレスは異なります。

ここにあるアドレスを表記すればよいのでしょうか?仮にそうだとするとこれは毎回変わってしまうアドレスであったりはしないのでしょうか?

Yasuhiro Miyataにより編集されました
Avatar
katmai

竹内様

ご回答,ありがとうございます.

調べてみたところ,プロキシは使っていませんが,セキュアアクセスを利用しているみたいです.

そうなると,システム管理者からクライアント証明書とパスワードの入手が必要なのですよね,きっと...

せっかくなので,もう少し調べます.

 

Avatar
竹内 能彦

Yasuhiro Miyata様

プロキシサーバーの設定がまとめられているファイルですね。
どのプロキシを選択すればよいかは情報システム部の担当者にご確認ください。


katmai様

そうですね。
クライアント証明書とパスワードが必要です。
入手できればですが、設定は本文の「セキュアアクセス利用時の実行」を参考にしてください。

Avatar
nasuka_o

非常に初心者的な質問で申し訳ありません。

同期ツールを以下環境でセットアップし、下記コマンドを実行しましたが、
「Exception in thread "main" java.lang.NoClassDefFoundError」で同期が開始されませんでした。

オプション設定やディレクトリ指定は誤っていなく、
classファイルをMac内で探しましたが.class拡張子のファイルがなく、
それ以降、どのようにしたらよいかわかりません。

どなたかヒントでも良いのでご指示いただけますと幸いです。

実行環境
・Mac OS X 10.11.6
・java 9.0.4
 Java(TM) SE Runtime Environment (build 9.0.4+11)
 Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

デバッグモード時実行したログ

SYS-Ebisu-0014:~ root# java -jar /Users/[username]/ggsync/GGsync.jar /Users/[username]/ggsync/
INFO  12:43:39 The sync beginning with debug mode.
DEBUG 12:43:39 グーグルカレンダーの認証方式: P12KEY
DEBUG 12:43:39 サービスアカウントのメールアドレス: ggsync@ggsync-192502.iam.gserviceaccount.com
DEBUG 12:43:39 サービスアカウントのP12キーファイルの絶対パス: /Users/[username]/ggsync/GGsync-c9da009323a5.p12
DEBUG 12:43:39 OAuth2のclient_idファイルの絶対パス:
DEBUG 12:43:39 OAuth2の認証情報保存先の絶対パス:
DEBUG 12:43:39 グーグルカレンダーID: kcgrp.jp_8fvl7k2m6rrm1mc791nk837a10@group.calendar.google.com
DEBUG 12:43:39 グーグルカレンダーに登録する通常予定の色: 5
DEBUG 12:43:39 グーグルカレンダーに登録する期間予定の色: 7
DEBUG 12:43:39 ガルーンのURL: http://grn.dooga.co.jp/cgi-bin/cbgrn/grn.cgi
DEBUG 12:43:39 ガルーンのアカウント: otani-nasuka
DEBUG 12:43:39 SYNC対象の開始時間: Wed Jan 17 12:43:39 JST 2018
DEBUG 12:43:39 SYNC対象の終了時間: Sun Jun 17 12:43:39 JST 2018
1月 18, 2018 12:43:39 午後 org.apache.axiom.util.stax.dialect.StAXDialectDetector detectDialectFromJarManifest
警告: Unable to load manifest for StAX implementation at jrt:/java.xml/
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
    at org.apache.axiom.om.impl.builder.StAXBuilder.initParser(StAXBuilder.java:170)
以下略

ログインしてコメントを残してください。