スケジュール仕事のスケジュール管理はサイボウズOffice8というグループウェアを使用して行っています。touchを持ち始めて、なんとかカレンダーアプリとサイボウズのスケジュールを同期できないものかと色々調べてみたところ、まだ完全とは言えないものの、それなりに使える環境になりました。手順としてはカレンダーアプリとGoogleカレンダーを同期サイボウズのスケジュールをiCal形式で吐き出しWeb上にアップGoogleカレンダーにWeb上にアップしたicsファイルをURLで追加という流れになります。方法で自サーバーがなくてもローカル環境のみでうまく動作するようになりました。iPhoneのカレンダーアプリとGoogleカレンダーを同期させます。こちらはAppBankさんで詳しく説明されていますので、そちらを参照してみ下さい。続いてサイボウズのスケジュールをiCal形式で吐き出しWeb上にアップする作業です。こちらは名古屋ではたらく社長blogだもんでさんで公開されているツールを利用させていただきます。「ダウンロードはこちらからどうぞ。」のリンクからZipファイルをダウンロード。解凍したらindex.phpを編集します。2行目のスケジュールタイトル、3行目のサイボウズのユーザーIDを記入。‘【ユーザーID】’;[/php]ユーザーIDは、サイボウズの自分のユーザー名部分をクリックして開く「ユーザー情報の詳細」画面に書かれています。次に11行目~13行目に必要な値を記入。‘【ログインパス】’);[/php]ログインIDは上のユーザーIDと同じものでいけると思います。_ID以上を行い、ファイルを保存。次にZipファイル内に入っている.htaccessを自分用にカスタマイズ。Googleからのアクセス(google.com)を許可し、あとは拒否するといいかと。(Googleカレンダーのサーバー?IP?がわからなかった...)ここまで出来たら自分の所有しているサーバーの任意の場所に解凍して出来たフォルダ(cybozu)ごとアップ。スケジュールID.icsでファイルが表示されます。http://hogehoge.jp/cybozu/data.icsスケジュールタイトルを変更した方は、dataの部分を変更して下さい。あと、.htaccessで自アクセスの許可を出していないと、自分自身もファイルにアクセスできませんのでご注意を^^;あとはGoogleカレンダーの「他のカレンダー」から「追加」→「URLで追加」と進み、上記のicsファイルのURLを貼り付け、OKボタンをクリック。GCALDaemonでローカルicsをGoogleカレンダーと同期)うまくいけば、サイボウズのスケジュール内容がGoogleカレンダーに反映されるはずです。アクセスし、カレンダーを追加して下さい。カレンダーアプリを開いて確認してみて下さい。サイボウズのスケジュールが確認できることでしょう。(出来なかったらゴメンなさいw)今のところここまで出来たのですが、1つ気がかりが。サイボウズより新しく追加したスケジュールが、Googleカレンダーに反映されません。反映までに時間がかかっているのか、はたまた他に原因があるのか。方法でうまく動作するようになりました。PMとても参考になりました。ありがとうございます。accountをidに直さなければならない点などは本当に助かりました。これからも良い情報をお願いします。私のところではサイボーズオフィス6をまだ使っており、細部のスクリプトは殆ど書き直してical形式のファイルを作れるようにはなりました。そもそもの起動方法がよく分かりません。現在は、アパッチのローカルホストをlocalhostとし、https://localhost/index.phpとして起動できるようになりました。実行すると、処理後に、ダウンロードするか、実行するかと聞かれ、ダウンロードする方を選択すると、ファイアフォックスのデフォルトダウンロードフォルダにindex.phpというファイルが保存されます。その中身がical形式のデータとさせることができました。やれば、data.icsというファイルを自動的に生成させられるのでしょうか?ちなみに、元のスクリプトはサイボーズの個人月間メニューからデータを作るので、来月の分は作れませんよね。皆さん、あれで大丈夫なのかな?私はせめて来月分のデータくらいまでは落とせるように書き直すつもりでいます。あの発想自体はすばらしいですね。スクリプトも勉強させてもらいました。PMMARINAさん、コメントありがとうございます☆>とても参考になりました。ありがとうございます。accountをidに直さなければならない点などは本当に助かりました。これからも良い情報をお願いします。アクセスすることで、.htaccessとindex.phpにより自動でical形式のファイルが生成されると思うのですが、それとはまた違うのでしょうか?本来ならGoogleカレンダーにも上記の方法でdata.icsのURLを登録すれば自動で生成され読まれる、と思っていたのですが、どうもうまくいきません。今は仕方なく自分でdata.icsにアクセス、ファイル保存後GCALDaemon(http://gcaldaemon.sourceforge.net/)で同期させています。アクセスすることで、.htaccessとindex.phpにより自動でical形式のファイルが生成される・・なるほど、こうやるんですか。私は、あの後で、悩み悩み、echoで出力するのではなく、直にファイルに書き出すスクリプトとしました。ftpでアップロードするようにスクリプトを加えました。それで、サクラネットのあるところにアップロードはできたのですが、グーグルカレンダーが読んでくれないんです。グーグルカレンダーの方での指定の仕方が悪いんだと思います。別の方がアップされていたical形式のデータもアップロードしたのですが、グーグルカレンダーに取り込まれません。ちなみに、来月分とか、年月指定するやり方も簡単ですよ。最初に月間予定表を読み出すところで&Date=da.2010.1.1と加えれば2010年1月の月間予定表を作ります。PMグーグルカレンダーへの表示ができるようになりました。PMMARINAさん、コメントありがとうございます☆>ftpでアップロードするようにスクリプトを加えました。おお、素晴らしいですね!是非教えて下さいw>ちなみに、来月分とか、年月指定するやり方も簡単ですよ。最初に月間予定表を読み出すところで&Date=da.2010.1.1と加えれば2010年1月の月間予定表を作ります。一度試してみますね^^>漢字のエンコードについて何か変更されましたでしょうか?いえ、特に変更していません。CHAR_CODE);>グーグルカレンダーへの表示ができるようになりました。AMできているファイルをftpでアップロードするには、以下のスクリプトを、一番最後に加えれば大丈夫です。$remote_file=”【FTPサーバー上のアップロードファイルパス】”;はちょっとくせ者なので、私は苦労しました。“FTP接続に失敗しました。“FTP接続に成功しました。“FTPアップロードに失敗しました。“FTPアップロードに成功しました。AMファイルを作り出す部分ですが、オリジナルのスクリプトの後の方に,echoで表示するための数行がありますが、以下のように書き換えます。表示する内容は一緒なので、すぐに見つけられると思います。ちなみに、ファイル名をdata.icsにしちゃってます。charset=utf-8’);この行です。echoで出力するなら、このようにheaderを書いておけば、ファイルにcharset=utf-8が指定されて、グーグルカレンダーは文字化けせずに表示してくれるのですが、fwriteで作ったファイルにはこれが組み込まれません。他の方で、と記述し、このファイルをグーグルカレンダーの他のカレンダーのurlに指定する方法で解決できたというものがありました。私もやってみたのですが、私は成功していません。AM他の方で、の後のphpのスクリプトが富んでしまいましたので、補足しておきます。PMMARINAさん、コメントありがとうございます☆かなり詳しくご説明頂きありがとうございます!さっそく私も試してみたいと思います。PHP初挑戦とは思えないスキルを持っておられて驚きです。PMその後の結果をご報告します。結論から言うと、無事なんとかGoogleカレンダーとの同期ができるようになりました。MARINAさんから教えていただいたicsファイル生成スクリプトを利用し、ファイルを生成。Webサーバー上ではなく、MARINAさん同様ローカルサーバーの環境を準備、ローカルでindex.phpを実行する方法に変更しました。MARINAさんと違うのは次の処理の部分からです。ftpは利用せず、別のコメントでも紹介しましたが、GCALDaemonを利用します。GCALDaemonには、ローカルのicsファイルとGoogleカレンダーとを同期させる機能&それ専用のsync-now.batというbatファイルがあります。このsync-now.batファイルをicsファイル生成後実行するように、同index.php内にスクリプトを追加しました。sync-now.batの方もそのまま実行するとエラーになるので若干中をいじりましたが、そちらはファイルのパスの指定を変えただけの簡単な変更のみで済みました。sync-now.batが実行されると、モニタ上にローディングバーも表示されるので、同期されたかどうかも視覚的に判断でき、いい感じです。GCALDaemonについてもし何か知りたいことがありましたら、私のわかる範囲でお答えします☆あ、あとGoogleカレンダーの方ですが、他のカレンダーではなくマイカレンダーのほうに追加する方法を取っています。なにはともあれ、ここまで出来たのもMARINAさんのアドバイスがあってのこと。私はical.phpを使用するなど、いろいろ苦しんでおります。今日から出張続きですが、一段落したら、GCALDaemonでトライしたいと思います。GCALDaemonダウンロードしてみました。どこから手を付けて良いのかさっぱりです。PMMARINAさん、コメントありがとうございます☆GCALDaemonについてですが、長くなりそうだったので設定方法をざっくりとですが記事にしてアップしましたので、そちらを参考にしていただけると幸いです。PMGCALDaemonの使い方を教えていただき、ありがとうございます。私のその後ですが、基本的にGCALDaemonに移そうと思っています。ところで、phpプログラムを定期的に実行させる簡単な方法を見つけました。http://d.hatena.ne.jp/dadadadan/20080125/1201244819私のところでうまく同期できなかった原因の一つに、グーグルカレンダーが最新の情報をうまく読み込んでくれなかったということがあるようです。ここら辺、キャッシュが原因で・・・というような説明しかできないのですが。試したものは本来なら動いてくれるべきだったように思います。不思議なことに、data.icsをアップするディレクトリを変えた上で、グーグルカレンダーで追加すると、そちらを読んでくれることが分かりました(あくまでも私の環境だけかもしれません)。その結果、同期できるようになりました。お困りの方、一度、トライされるとよいかもしれません。ちなみに、漢字コードの指定も、他の方がうまくいかなかった.htaccessでの指定で文字化けせずに読み込まれました。移行しようかと思っています。PMMARINAさん、コメントありがとうございます☆>ところで、phpプログラムを定期的に実行させる簡単な方法を見つけました。移行しようかと思っています。これは凄く大きいですよね!.htaccessとか使用しなくて済みますし、漏れる事もないですしね♪>他のカレンダーを参照せず、マイカレンダーに追加することになると、同じ予定が重複していってしまうことにはなりませんか?マイカレンダーも他のカレンダー同様、複数作成することが可能ですので、サイボウズ用にマイカレンダーを作成し、それと同期させています。PM今思い出したのですが、ファイルのショートカットを利用して起動する方法もありますね。作成したphpファイルのショートカットを作成し、右クリックでプロパティを選択。リンク先のファイルのリンクの前に実行させたいプログラムのリンク(今回でいうとphp.exe)を追加+半角スペース。C:\sync\index.phpこれをランチャーに登録しても使えます^^ちなみに自分はphp-win.exeを指定しました。検索でこちらに辿り着きました。http://age.c3i.ne.jp/index.htmlこのサイトの機能は結構使えると思い、コメントしてみました。Windows版のサイボウズでは、まだ不具合が出ているようですが、Linux版なら問題がないと思われます。PMMakotooさん、コメントありがとうございます☆また、有益な情報ありがとうございます!ご紹介頂いたサイトですが、実は私もサービスが開始したときから試験的に使用させていただいております^^;スケジュールが変更された際も、自分で更新作業などを行わなくてもいいですし、レスポンスもいいのでなかなか便利ですよね!ただ、IDなどの情報を外部に持たせるという点は、少し不安が残るところです。使用する際はその辺のリスクもあるんだという認識を持った上で使わなければなりませんね。コメントを残すメールアドレスが公開されることはありません。PAPA-パパはWebデザイナ。