
Примечание: это не обязательно должен быть календарь Google. В настоящее время я использую календарь Google, но я смогу перейти на ЛЮБОЙ сервис, который позволит мне использовать эту функцию.
Можно ли как-то клонировать календарь Google в другой календарь Google и настроить все на 2 дня вперед?
Например
В одном календаре Google может быть 3 события на весь день в среду, четверг, пятницу. Я хочу, чтобы другой календарь Google был точным клоном предыдущего календаря, за исключением 3 событий на весь день в понедельник, вторник и среду.
Также, это просто бонус, но если возможно, всякий раз, когда я вношу изменения в первый календарь, изменения применяются ко второму календарю, за исключением одного раза, на 2 дня вперед. Но это бонус, так что если мне придется вручную нажимать кнопку или запускать скрипт для каждого вносимого изменения, меня это устраивает.
Я никогда не буду вносить изменения во второй календарь, поэтому односторонняя синхронизация вполне подойдет.
Редактировать: может быть, я могу экспортировать календарь Google в какой-нибудь открытый формат файла, например, Open Document Format, и запустить скрипт для файла, чтобы сдвинуть дни на 2 дня вперед?
решение1
Если бы вы знали, как программировать, вы могли бы легко сделать это с помощью php. Google Calendar API обеспечивает полный доступ к календарю. После того, как скрипт был бы написан, вам нужно было бы только запустить веб-страницу php, нажать кнопку, и он мог бы сделать это для всего календаря.
ЭТО ТОЛЬКО ОСНОВНАЯ СХЕМА, А НЕ ПОЛНАЯ ПРОГРАММА
$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);
}