Googleカレンダーに専用カレンダーを追加して
マイカレンダーの設定を開くと「カレンダーID」があります
予定の追加
function addCalendarEvent() { // カレンダー ID を指定。通常は 'primary' でメインカレンダーを指します。 var calendarId = 'カレンダーID@group.calendar.google.com'; // 予定の詳細 var eventTitle = 'ミーティング'; var eventDescription = 'プロジェクトの進捗確認ミーティング'; var eventLocation = '会議室A'; var startTime = new Date('2025-01-15T10:00:00'); var endTime = new Date('2025-01-15T11:00:00'); // 予定の作成 var event = CalendarApp.getCalendarById(calendarId).createEvent(eventTitle, startTime, endTime, { description: eventDescription, location: eventLocation }); Logger.log('イベントを作成しました: ' + event.getId()); }
問題なく予定追加できました^^
予定の取得
function getCalendarEvents() { var calendarId = '@group.calendar.google.com'; // 取得期間を設定(例:今後14日間) var now = new Date(); var oneWeekLater = new Date(); oneWeekLater.setDate(now.getDate() + 14); // イベントを取得 var events = CalendarApp.getCalendarById(calendarId).getEvents(now, oneWeekLater); // イベント情報をログに出力 events.forEach(function(event) { Logger.log('タイトル: ' + event.getTitle()); Logger.log('開始時刻: ' + event.getStartTime()); Logger.log('終了時刻: ' + event.getEndTime()); Logger.log('説明: ' + event.getDescription()); Logger.log('場所: ' + event.getLocation()); Logger.log('---'); }); }
先ほど入力したものを取得できました
予定の削除
// getCalendarEvents events.forEach(function(event) { Logger.log('タイトル: ' + event.getTitle()); Logger.log('開始時刻: ' + event.getStartTime()); Logger.log('終了時刻: ' + event.getEndTime()); Logger.log('説明: ' + event.getDescription()); Logger.log('場所: ' + event.getLocation()); Logger.log('---'); // ミーティングを削除 if(event.getTitle().match(/ミーティング/)){ deleteCalenderById(calendarId, event.getId()); } }); } function deleteCalenderById(calendarId, eventId){ var event = CalendarApp.getCalendarById(calendarId).getEventById(eventId); if (event) { event.deleteEvent(); Logger.log('イベントを削除しました: ' + eventId); } }
削除できました!
マイタスク作成
マイカレンダーのようにマイタスクを作成します
カレンダーの右上のスイッチで「ToDoリスト」に変更
新しいリストを作成でtaskdevを作成しました
タスクIDの取得
ブラウザで見てもタスクIDがわからない…
function getTaskLists() { // タスクリストを取得 var taskLists = Tasks.Tasklists.list(); // タスクリストが存在する場合、一覧をログに出力 if (taskLists.items && taskLists.items.length > 0) { taskLists.items.forEach(function(taskList) { Logger.log('タスクリストID: ' + taskList.id); Logger.log('タスクリスト名: ' + taskList.title); Logger.log('---'); }); } else { Logger.log('タスクリストが見つかりません。'); } }
実行しても Tasks is not defined.
となり、Google 拡張サービスを追加しないとだめでした
Google 拡張サービスを追加
↓スクリプトの左メニューで「サービス + 」です。画像は既にTasksが入っているので表示されています。
Tasks APIを選択して追加
こんな感じで承認画面に権限タスクの表示が加わりました。
追加、取得と進めていくと [ すべてのタスクの作成、編集、整理、削除 ]の承認が必要になります
タクスを追加、取得、削除
上のgetTaskListsで取得した tasklistidを使用します
function addTask() { var taskListId = 'RnFJbxxxxxxxlE2Qg'; // デフォルトのタスクリストを使用 var task = { title: '新しいタスク', notes: 'タスクの詳細説明', due: (new Date('2025-01-20')).toISOString() // 期限日 }; var createdTask = Tasks.Tasks.insert(task, taskListId); Logger.log('タスクを作成しました: ' + createdTask.id); }
function getTasks() { var taskListId = 'RnFJbXlLZ0lnMG43blE2Qg'; // デフォルトのタスクリストを使用 var tasks = Tasks.Tasks.list(taskListId); if (tasks.items && tasks.items.length > 0) { tasks.items.forEach(function(task) { Logger.log('タスクID: ' + task.id); Logger.log('タイトル: ' + task.title); Logger.log('メモ: ' + task.notes); Logger.log('期限日: ' + task.due); Logger.log('完了状態: ' + (task.status === 'completed' ? '完了' : '未完了')); Logger.log('---'); }); } else { Logger.log('タスクがありません。'); } } function deleteTask() { var taskListId = '@default'; // デフォルトのタスクリストを使用 var taskId = 'your-task-id'; // 削除したいタスクの ID を指定 try { Tasks.Tasks.remove(taskListId, taskId); Logger.log('タスクを削除しました: ' + taskId); } catch (e) { Logger.log('タスクの削除に失敗しました: ' + e.message); } }
タスクを完了にする
function completeTask() { var taskListId = 'Rn111111111111g'; // デフォルトのタスクリストを使用 var taskId = 'VXF2222222222dw'; // 完了させたいタスクの ID を指定 // タスクを取得 var task = Tasks.Tasks.get(taskListId, taskId); if (task) { task.status = 'completed'; var updatedTask = Tasks.Tasks.patch(task, taskListId, taskId); Logger.log('タスクを完了にしました: ' + updatedTask.id); } else { Logger.log('指定されたタスクが見つかりません: ' + taskId); } }
無事完了しました!
コメント