注意:不一定非要使用 Google 日历。我目前正在使用 Google 日历,但我可以切换到任何允许我使用此功能的服务。
有什么方法可以将一个 Google 日历克隆到另一个 Google 日历并提前 2 天调整所有内容?
例如
一个 Google 日历可能在周三、周四、周五有 3 个全天活动。我希望另一个 Google 日历与前一个日历完全一样,只是 3 个全天活动分别在周一、周二和周三。
此外,这只是一个额外好处,但如果可能的话,每当我对第一个日历进行更改时,更改都会应用于第二个日历,除非再次提前 2 天。不过,这是一个额外好处,所以如果我必须手动按下按钮或为所做的每个更改运行脚本,那对我来说没问题。
我永远不会更改第二个日历,因此单向同步就可以了。
编辑:也许我可以将 Google 日历导出为某种开放文件格式(例如开放文档格式),然后在该文件上运行脚本以将日期提前 2 天?
答案1
如果您知道如何编程,则可以使用 php 轻松完成此操作。Google 日历 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);
}