人から共有されているカレンダーがなぜかiPhoneに反映されない...
じゃあ,新しいカレンダーに同期させて自分のカレンダーにしちゃえ!!
という発想から。
カレンダーの数を増やせば複数カレンダーを一つにまとめたり,スケジュールのタイトルだけ消して,空き時間カレンダーをほかの人に公開したり...
使い道は多いかと。
以下,コード。
なお,参照コードはこちらで→
エラーの修正やマイナーチェンジを行いました。
設定は上URLを参考にしてください。
---
var calendar_shared = CalendarApp.getCalendarById('to calender id');
var calendar_b = CalendarApp.getCalendarById('from calender id');
function getEventsForDays(calendar, start_date, days) {
if (days == 0) {
var events = calendar.getEventsForDay(start_date);
return events;
} else {
var start_time = new Date(start_date.getTime())
var end_time = new Date(start_date.getTime() + (days * 24 * 60 * 60 * 1000));
var events = calendar.getEvents(start_time, end_time);
return events;
}
}
function deleteEventsForDay(calendar, start_date, days) {
var events = getEventsForDays(calendar, start_date, days);
events.forEach(function(e) {
e.deleteEvent();
});
}
function copyEventsForDay(from_calendar, to_calendar, start_date, days) {
var events = getEventsForDays(from_calendar, start_date, days);
events.forEach(function(e) {
if (e.isAllDayEvent()) {
var dt = e.getStartTime();
dt.setDate(dt.getDate()+1);
var dt1 = e.getEndTime();
dt1.setDate(dt1.getDate()+1);
to_calendar.createAllDayEvent(e.getTitle(), dt, dt1, {description: e.getDescription(), location: e.getLocation()});
} else {
to_calendar.createEvent(e.getTitle(), e.getStartTime(), e.getEndTime(), {description: e.getDescription(), location: e.getLocation()});
}
});
}
function syncEventsForDay(start_date, days) {
deleteEventsForDay(calendar_shared, start_date, days);
copyEventsForDay(calendar_b, calendar_shared, start_date, days);
}
function syncEventsForToday() {
var today = new Date();
syncEventsForDay(today, 0);
}
function syncEventsForTommorow() {
var today = new Date();
var tomorrow = new Date(today.getTime() + (1 * 24 * 60 * 60 * 1000));
syncEventsForDay(tomorrow, 0);
}
function syncEventsAfter2To60Days() {
var today = new Date();
var two_days_after = new Date(today.getTime() + (2 * 24 * 60 * 60 * 1000));
syncEventsForDay(two_days_after, 60);
}
---
Comments