Take the 2-minute tour ×

Note: it doesn't have to be Google calendar. I am currently using Google calendar but I will be able to switch to ANY service that will allow me to do this functionality.

Is there any way I can clone a Google calendar to another Google calendar and adjust everything 2 days in advance?


One google calendar might have 3 all-day events on Wednesday, Thursday, Friday. I want another Google calendar to be an exact clone of the previous calendar except the 3 all-day events are on Monday, Tuesday, and Wednesday.

Also, this is just a bonus, but if possible, whenever I make a change to the first calendar, the change applies to the second calendar except once again, 2 days in advance. This a bonus though, so if I have to manually press a button or run a script for every change I make, that is fine by me.

I will never make changes to the second calendar so one-way sync is fine.

Edit: maybe I can export the Google calendar to some sort of open file format such as the Open Document Format and run a script on the file to shift the days by 2 days in advance?

share|improve this question

closed as off-topic by mpy, Simon Sheehan, Scott, random Oct 23 '13 at 4:48


Do you know any programming languages such as php or perl or java? –  cybernard Oct 5 '13 at 23:59
Belongs on Web Apps, but a cookie user rarely follows along –  random Oct 23 '13 at 4:48

1 Answer 1

If you knew how to program you could do this easily with php. Google Calendar API allows full access to the calendar. Once the script was written you would only have to launch the php web page click a button and it could do it for the whole calendar.


$room="named of master calendar"
$room2="destination calendar"

$calList = $cal->calendarList->listCalendarList();

foreach ( $calList["items"] as $stuff) {
if (strcasecmp($stuff["summary"],$room1)==0) {

if (strcasecmp($stuff["summary"],$room2)==0) {

$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);
share|improve this answer
