
注: Google カレンダーである必要はありません。現在、Google カレンダーを使用していますが、この機能を使用できる任意のサービスに切り替えることができます。
Google カレンダーを別の Google カレンダーに複製し、すべてを 2 日前に調整する方法はありますか?
例えば
ある Google カレンダーには、水曜日、木曜日、金曜日の 3 つの終日イベントがあるかもしれません。別の Google カレンダーを、月曜日、火曜日、水曜日の 3 つの終日イベントを除いて、前のカレンダーとまったく同じにしたいと考えています。
また、これは単なるおまけですが、可能であれば、最初のカレンダーに変更を加えるたびに、その変更が 2 日前を除いて 2 番目のカレンダーに適用されます。ただし、これはおまけなので、変更を加えるたびに手動でボタンを押したり、スクリプトを実行したりする必要がある場合でも、私は問題ありません。
2 番目のカレンダーに変更を加えることはないので、一方向の同期で問題ありません。
編集: Google カレンダーを Open Document Format などのオープン ファイル形式にエクスポートし、そのファイルでスクリプトを実行して日付を 2 日先にシフトすることは可能でしょうか?
答え1
プログラミングの方法がわかれば、PHP で簡単に実行できます。Google Calendar API を使用すると、カレンダーに完全にアクセスできます。スクリプトを記述したら、PHP Web ページを起動してボタンをクリックするだけで、カレンダー全体に対して実行できます。
これは基本的な概要に過ぎず、完全なプログラムではありません
$room="named of master calendar"
$room2="destination calendar"
$calList = $cal->calendarList->listCalendarList();
foreach ( $calList["items"] as $stuff) {
if (strcasecmp($stuff["summary"],$room1)==0) {
$calendar1=$stuff["id"];
$found=1;
break;}
}
foreach ( $calList["items"] as $stuff) {
if (strcasecmp($stuff["summary"],$room2)==0) {
$calendar2=$stuff["id"];
$found=1;
break;}
}
$existEvents = $cal->events->listEvents($calendar1["id"]);
foreach ($existEvents["items"] as $item)
{
**TODO: this part incomplete!**
The individual parts would have to be copied from $items to a new Google_Event
add 2 for the start and end dates.
$createdEvent = $cal->events->insert($calendar2["id"], $event);
}