+3

Tối ưu hóa Quản lý Thời Gian: Tự Động Cập Nhật Sự Kiện Google Calendar vào Google Sheets

Bạn có thường cảm thấy bị áp đặt bởi lịch trình phức tạp và không thể kiểm soát được thời gian của mình? Đừng lo lắng, vì có một cách hiệu quả để quản lý thời gian và tối ưu hóa lịch trình của bạn - đó là sử dụng Google Calendar và Google Sheets cùng một lúc.

Google Calendar là một công cụ mạnh mẽ giúp bạn tổ chức sự kiện và lên kế hoạch hàng ngày, trong khi Google Sheets là một bảng tính linh hoạt cho phép bạn xem tổng quan và phân tích dữ liệu. Khi kết hợp hai công cụ này, bạn có thể thấy nhiều lợi ích rõ rệt:

  1. Tổ chức tốt hơn với Google Calendar Google Calendar cho phép bạn đặt sự kiện, lên lịch và thiết lập nhắc nhở. Tuy nhiên, việc chuyển đổi dữ liệu từ Calendar vào Sheets mang đến cái nhìn tổng quan hơn về lịch trình của bạn. Bạn có thể phân loại sự kiện, xem mức độ sắp xếp và tối ưu hóa kế hoạch hàng ngày của mình.

  2. Theo dõi tiến độ và hiệu suất làm việc Việc đồng bộ sự kiện vào Google Sheets giúp bạn theo dõi tiến độ công việc và đánh giá hiệu suất. Bằng cách phân tích dữ liệu trong Sheets, bạn có thể xem tổng thời gian dành cho mỗi sự kiện, từ đó tối ưu hóa lịch trình và quyết định cách phân bổ thời gian hiệu quả hơn.

  3. Dễ dàng chia sẻ và làm việc nhóm Google Sheets cho phép bạn chia sẻ dữ liệu và làm việc cùng nhóm một cách dễ dàng. Bạn và đồng nghiệp có thể cập nhật, chỉnh sửa và xem trạng thái công việc, tạo nên tính tương tác và sự hiệu quả trong làm việc nhóm.

  4. Tối ưu hóa lịch trình cá nhân Bằng cách tổ chức thông tin từ Google Calendar vào Google Sheets, bạn có cái nhìn tổng thể về lịch trình của mình. Điều này giúp bạn tối ưu hóa lịch trình cá nhân, cân nhắc thời gian cho mỗi sự kiện và đưa ra những quyết định đúng đắn cho cuộc sống hàng ngày.

Qua việc kết hợp sức mạnh của Google Calendar và Google Sheets, bạn có thể quản lý thời gian hiệu quả hơn, làm việc thông minh và tận dụng mọi giây phút của ngày. Hãy thử áp dụng phương pháp này và trải nghiệm sự thay đổi tích cực trong cuộc sống của bạn. Đây là kết quả các bạn có thể đạt được sau bài viết này:

image.png

Bắt đầu thôi nào!

1. Tạo sheet

Đoạn code mà tôi dùng sẽ sử dụng dữ liệu cho thời điểm bắt đầu và thời điểm kết thúc. Tôi chọn ô B1 cho thời điểm bắt đầu và C1 cho thời điểm kết thúc. Nhập sẵn thời gian vào 2 ô này, thời điểm kết thúc tôi dùng tgian hiện tại nên sẽ dùng hàm: NOW() .

2. Dùng Apps Script

Click vào Extensions và chọn Apps Script Extensions hay tiện ích mở rộng được tìm thấy ở menu chính ở đầu trang.

6400e6c0b11db35b901c4ad2_BjFrVICwO7gtAaGHumkRwjaFjebDh4ok687WO4qwWpo-paHCmXQiv-tkUrmTYD1XzzirIpFPlN6l5slmUCeqdVwwRv7yMEyEF395FBgcKDxiffLYp6hHptVk0cGzCVqkvkPG1Y8ngOeRPKPlwX0HX2c.png

Trang chính của Google Apps Script sẽ được tải trong tab mới. 6400e6c0d43ca854218a0821_NiHzwMvlQtQMKsHc3mlE7K8LYgOGXiymgMeuRyH04kHcUSfoIKE-WlqspAcU6MKZwRY870g3_Ki63DjAeaK6xUNYJt_xnl68eZ-zMgSnr3QU-w6RWE-yDq19nGOtiInNZPTUcLdhkaPO3jEulBXnMjk.png

Thêm đoạn mã vào Google Apps Script

function exportCalendarToSpreadsheet() {
  var calendarId = 'xxxx@gmail.com'; // Replace with your Google Calendar ID
  var spreadsheetId = 'xxxxxxxxxxxxxxxxx'; // Replace with your Google Spreadsheet ID

  // Open the calendar and the spreadsheet
  var calendar = CalendarApp.getCalendarById(calendarId);
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheets()[0];

  // Get the start and end times from cells B1 and C1
  var startTime = sheet.getRange("B1").getValue();
  var endTime = sheet.getRange("C1").getValue();

  // Get all events within the specified time range
  var events = calendar.getEvents(startTime, endTime);

  // Set headers in the spreadsheet
  sheet.getRange(2, 1, 1, 6).setValues([["Event Title", "Start Time", "End Time", "All Day", "Location", "Description"]]);

  // Loop through the events and export data to the spreadsheet
  var data = [];
  for (var i = 0; i < events.length; i++) {
    var event = events[i];
    var eventStartTime = event.getStartTime();
    var eventEndTime = event.getEndTime();

    // Check if the event is an all-day event
    var isAllDay = event.isAllDayEvent();

    // Format date and time
    var startDateStr = Utilities.formatDate(eventStartTime, Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");
    var endDateStr = Utilities.formatDate(eventEndTime, Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");

    data.push([event.getTitle(), startDateStr, endDateStr, isAllDay, event.getLocation(), event.getDescription()]);
  }

  // Write event data to the spreadsheet starting from row 2
  sheet.getRange(3, 1, data.length, 6).setValues(data);
}

image.png

Bạn có thể dễ dàng tìm thấy Google Spreadsheet ID từ URL của Spreadsheet bạn đang sử dụng. Ví dụ URL của Spreadsheet bạn đang sử dụng là:

https://docs.google.com/spreadsheets/d/1qpyC0XzvTcKT6EISywvqESX3A0MwQoFDE8p-Bll4hps/edit#gid=0

Thì ID của spreadsheet này là 1qpyC0XzvTcKT6EISywvqESX3A0MwQoFDE8p-Bll4hps.

Còn Google Calendar ID thì các bạn có thể kham khảo link này để lấy.

Tập lệnh sẽ tự động phát hiện tài khoản Google bạn đang sử dụng và lấy thời điểm bắt đầu và kết thúc được lưu trữ tại các ô B1 và C1. Bạn có thể thay đổi địa chỉ truyền dữ liệu trên sheet và thay đổi trong đoạn mã bằng địa chỉ ô mới.

4. Lưu và ủy quyền dự án

Bấm vào nút Save project để lưu đoạn mã.

image.png

Sau đó, nhấp vào nút Run the selected function. Điều này là để chúng tôi kiểm tra xem tập lệnh có hoạt động chính xác hay không.

image.png

Nếu đây là lần đầu tiên bạn chạy tập lệnh, Google Apps Script sẽ yêu cầu ủy quyền truy cập dữ liệu của bạn. Nhấp vào Review permissions.

image.png

Một cửa sổ mới sẽ xuất hiện nơi bạn sẽ được yêu cầu chọn tài khoản Google để sử dụng. Nhấp vào tài khoản Google bên phải từ danh sách.

image.png

Một trang khác sẽ tải để nhắc bạn rằng Google chưa xác minh mã. Nhấp vào Advanced.

image.png

Một liên kết có nhãn Go to Untitled project (unsafe) sẽ xuất hiện. Nhấp vào nó. image.png

Một trang khác sẽ được tải liệt kê các quyền mà mã cần có. Nhấp vào Allow.

image.png

Cửa sổ bật lên sẽ biến mất. Nhật ký thực thi (Execution log) sẽ xuất hiện bên dưới mã của bạn. Hai thông báo sẽ xuất hiện: Đã bắt đầu thực thi (Execution started) và Đã hoàn tất thực thi (Execution completed).

image.png Khi bạn thấy những thông báo này, hãy quay lại trang tính đang hoạt động của bạn và bạn sẽ thấy dữ liệu lịch google của mình đã được xuất.

5. Thêm nút

Sẽ không hiệu quả nếu luôn mở Google Apps Script bất cứ lúc nào bạn cần tải các mục từ Lịch Google của mình sang Google Trang tính. Một nút bấm sẽ giúp bạn xuất dữ liệu Lịch Google bất cứ khi nào bạn cần dữ liệu mới nhất. Nó có thể là một hình ảnh hoặc một bức vẽ bạn tự vẽ. Dưới đây là các bước:

  1. Nhấp chuột Insert trên menu chính, sau đó nhấp vào Drawing trong danh sách thả xuống.
  2. Nhấp vào tùy chọn Shape
  3. Một số loại hình dạng sẽ xuất hiện. Chọn hình dạng ưa thích của bạn. Đối với ví dụ này, mình chọn Rounded Rectangle.
  4. Vẽ nó trên canvas theo bất kỳ kích thước nào bạn muốn.
  5. Nhấp vào tùy chọn Hộp văn bản (Text box) để thêm hộp văn bản qua nút. Kéo nó đến một kích thước nhất định trong hình rồi nhập nhãn bạn muốn. Đối với ví dụ này, nhãn sẽ là Load Calendar.
  6. Nhấp vào Save and Close.

image.png

Bạn có thể biết thêm chi tiết về bước này tại đây

6. Kết nối với nút

Nhấn vào nút. Một biểu tượng ba dấu chấm sẽ xuất hiện ở góc trên bên phải của nó. Nhấp vào nó. image.png

Một tập hợp các tùy chọn sẽ xuất hiện. Nhấp vào Assign script. Một hộp sẽ xuất hiện nhắc bạn xác định tập lệnh để gán cho nút. Nhập exportCalendarToSpreadsheet (tên đọan mã), sau đó nhấp vào OK.

Sau khi bạn nhấp vào nút, lịch sẽ được xuất sang Google Trang tính.

Tham khảo

https://www.lido.app/tutorials/export-google-calendar-to-google-sheets

https://duizendstra.medium.com/record-time-and-activities-with-google-sheets-calendar-and-apps-script-41bf69244346


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.