サイボウズ→iCal→iPhone:スケジュールをシンクロ

2008/06/23 13:22:59

 予定をシンクロさせたい件。今日お会いしたエンジニアの方にCybozu2ICalなるものを教えていただいた。感謝。あと作者のHirotaka Ogawaさんにも!

 だがしかし! 設備がシンクロされない…… サイボウズがはき出すシンクロ用のCSV(ag.cgi?page=SyncCalendarで取れる)に含まれていないのだ。

 ほかにも、直接編集できないしなーとか考えていたら、iCalenderフォーマットのURLにイベントのURLを直接書き込めんでブラウザから直接編集すればいいや、と。

↓こんな感じ

diff -u cybozu2ical.org cybozu2ical
--- cybozu2ical.org 2008-06-23 11:09:20.000000000 +0900
+++ cybozu2ical 2008-06-23 12:57:32.000000000 +0900
@@ -130,8 +130,9 @@
 for my $item ($cal->get_items()) {
     my $vevent = Data::ICal::Entry::Event->new();
     my %args = (
+   url         => decode_utf8($cfg->{cybozu_url} . '?page=ScheduleView&EID=' . $item->id),
    summary     => decode_utf8($item->summary),
-   description => decode_utf8($item->description),
+   description => decode_utf8($item->description . '(' . $cfg->{calname} . ":" . $item->id . ')'),
    created     => to_icaldate($item->created),
    dtstamp     => to_icaldate($item->modified),
     );

 descriptionをいじって、サイボウズのイベントIDを付けているのは、iPod touchにはURL属性をシンクロされないから。IDがわかれば ag.cgi?page=ScheduleView&EID= のあとにID付けてみれますから。そういうブックマークレットでも作ればいいですわな。あなろぐー iPhoneではURL属性もシンクロできてほしい。あと添付の画像とかも……

あとは

cd /Users/hoge/.bin/cybozu2ical-0.20
rm /Users/hoge/Sites/cnet.ics
./cybozu2ical > /Users/hoge/Sites/cnet.ics

  てな感じのスクリプトを定期的に実行しておけばOK。Web共有を動かしてiCalから http://localhost/~hoge/cnet.ics をサブスクライブすれば取り込めるはず。このままだと誰でも取れちゃうので、Apacheの設定などでローカルからのみアクセスできるようになどしておこう。

 これでiPod touchをつなぐたびにシンクロされるはず。

 備忘録代わりの適当な説明ですが……

※このエントリは builder メンバーにより投稿されたものです。シーネットネットワークスジャパン および builder編集部の見解・意向を示すものではありません。
このユーザーブログエントリーはbuilder編集部によりピックアップされてます。
  • 1件のコメント

#1 大野晋一  - 2008/06/23 17:59:49

会社でやってみて気づきましたが、配布元で言われている「Text::CSV_XS... 続きを見る
» 不適切なコメントを報告する
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 昨日のトップ記事
  • 2日前
  • 3日前
  • 4日前
  • 5日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ