WordPressのカスタムフィールドのデータをGoogleカレンダーにインポートさせるために、CSV形式のデータをはき出させる

CSプレイヤーズでは、コンサドーレ札幌の選手データを収録するデータベースとしてWordPressを使用している。効率よく管理するために、カスタムフィールドを使用している。この中に、選手達の誕生日データがあり、これを公開Googleカレンダーに載っけたくなった。

Googleカレンダーにはインポートの機能があるので、これを使うことにする。直接インポートできるような便利な機能はないので、WordPress側でインポートできる様式で出力(表示)する方法を探った。これは、その時の覚え書きである。

まず最初に、今回成功したGoogleカレンダーへのインポートできた完成型はこちら。→カレンダー – CSプレイヤーズ(CONSA DE CONSA)

  • 公開カレンダーに、選手の誕生日を予定として記述。
  • 選手名でタイトルをつけ、その選手の誕生日に終日予定で表示。
  • 作成日は、生まれた年でそれ以降は、毎年繰り返し表示。
  • 説明にCSプレイヤーズのその選手のデータの載っているページのURLを記載。

といった形で表示したい。さすがにリアルタイムでシンクロナイズなどと言うことは無理なので、CSプレイヤーズに、データをはき出させて、それをGoogleカレンダーに手動でインポートする形を選択。


【CSV編】

まず、コンマでデータを区切るだけなので手軽そうな、CSV形式で挑戦した。Google公式サイトの説明を参照。

参考:CSV ファイルについて – Google公式

最初の行に、定義文
『Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description』
2行目以降にデータをコンマで区切って列記するば良い。

で、PHPで、下記の様なコードを作った。

これを出力(表示)すると

Subject,Start Date,Start Time,End Date,End Time,All Day Event,Description
【誕生日】選手名1,1977/9/18,,,,TRUE,http://url1/
【誕生日】選手名2,1971/11/9,,,,TRUE,http://url2/
【誕生日】選手名3,1960/3/6,,,,TRUE,http://url3/
 ↓↓↓
選手データが列記されていく

これを、テキストファイルに保存する。
文字コード:UTF-8、改行コード:CRLF、拡張子:csv

これを、Googleカレンダーに読み込ませる。見事、数百あるデータを読み込んでくれたのだが、CSVでは、なんと、”繰り返し”が指定できない。これでは、誕生日データが、誕生した日にだけ表示されて、翌年以降には反映されない。

これは困った。別の方法を考えることにした。
iCalendar形式にするしかない!?。
スタイルが複雑そうなので、挑戦したくなかったのだが、仕方がない。

【続く:WordPressのカスタムフィールドのデータをGoogleカレンダーにインポートさせるために、iCalendar形式のデータをはき出させる