Làm cách nào để xóa tất cả các sự kiện trong nhiều ngày cùng một lúc nhưng không phải toàn bộ Lịch trong Lịch Google?


22

Làm cách nào để xóa tất cả các sự kiện trong nhiều ngày cùng một lúc nhưng không phải toàn bộ Lịch trong Lịch Google? Tôi đã cố gắng nhấp vào một ngày có một sự kiện để xóa và kéo chuột của tôi đến 2 ngày sau ngày đó, nhưng sau đó tôi luôn thấy "tạo sự kiện". Tôi nghĩ rằng tôi có thể nhấn backspacehoặc deletexóa tất cả những sự kiện đó.

Những gì tôi đã làm cho đến nay = xóa từng sự kiện :(


Không có gì tích hợp sẽ cho phép bạn làm điều này. Nếu có một API cho lịch, có thể ai đó có thể tạo một ứng dụng để làm điều này, nhưng tôi không biết gì về nó.
ale

Câu trả lời:


25

Tôi đã có thể làm điều này với Google Script như thế này. Bạn có thể thay đổi điều này để xác định chính xác những ngày bạn muốn xóa, v.v.

function delete_events()
{
    var fromDate = new Date(2013,0,1,0,0,0); 
    var toDate = new Date(2013,0,4,0,0,0);
    var calendarName = 'My Calendar';

    // delete from Jan 1 to end of Jan 4, 2013 (for month 0 = Jan, 1 = Feb...)

    var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
    var events = calendar.getEvents(fromDate, toDate);
    for(var i=0; i<events.length;i++){
      var ev = events[i];
      Logger.log(ev.getTitle()); // show event name in log
      ev.deleteEvent();
    }
 }

Bạn nhập cái này ở đâu?
đúng vào

4
Tạo tập lệnh mới tại Google ScScript và dán tập lệnh này vào. Thay đổi calendarNameđịa chỉ email (GMail) được liên kết với lịch.
Emaad Ahmed Manzoor

2
Đối với biến lịchName, tôi không làm việc cho lịch MAIN của mình trừ khi tôi sử dụng địa chỉ gmail đầy đủ thực tế của mình. Khi xem tên lịch này ở bên trái Lịch Google của tôi, nó chỉ hiển thị dưới dạng tên và họ của tôi, nhưng nó không hoạt động cho biến calendarName của tôi. Đối với lịch phụ của tôi, tên lịch hiển thị ở bên trái của lịch hoạt động tốt. Tôi sẽ nhận được thông báo lỗi sau khi tôi sử dụng tên lịch sai, vì vậy nếu bạn thấy thông báo TypeError: Phương thức gọi không thể "getEvents" không xác định.
Kurt

1
(những điều trên đã được chỉnh sửa từ một câu trả lời đã biến thành một bình luận. Tôi nghĩ thông tin này có thể hữu ích, vì vậy tôi đã lưu giữ nó)
jonsca

8

Tôi đã tìm thấy một sửa đổi có thể làm cho kịch bản này đáng giá nếu bạn muốn tìm kiếm các sự kiện nhất định. Rằng bạn cố tình hay không nhập. Hãy nói rằng rất nhiều mục có Chu kỳ 1 Điểm 10 trong tên theo sau là một số hoặc bất cứ điều gì. Xin lưu ý rằng "Điểm kiểm tra chu kỳ 1 10", "Điểm kiểm tra chu kỳ 1 20" sẽ được tìm thấy nhưng "Điểm kiểm tra chu kỳ 10" không ..

function delete_events()
{
  //take care: Date function starts at 0 for the month (January=0)
  //{search: 'cycle'+"*"+'Checkpoint'} hier zijn de search terms
  var fromDate = new Date(2014,7,1,0,0,0); //This is August 1, 2014
  var toDate = new Date(2016,2,1,0,0,0);   //This is March 1, 2016 at 00h00'00"
  var calendarName = 'GuyForssman';


  var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
  var events = calendar.getEvents(fromDate, toDate,{search: 'cycle'+"*"+Checkpoint'+"*"});
  for(var i=0; i<events.length;i++)
  {
    var ev = events[i];
      Logger.log('Item '+ev.getTitle()+' found on '+ev.getStartTime()); // show event name and date in log
      //ev.deleteEvent(); //uncomment this line to actually do the delete !
  }
}

Điều này mở rộng kịch bản ở trên. Cho phép tôi xóa một chương trình học cả năm trong vài phút, cảm ơn
Daniel Filatov

3

Sau khi di chuyển từ hệ thống lịch trước sang Google Apps, tất cả các sự kiện định kỳ được nhập riêng lẻ. Tôi đã tạo một Google Script mới tại https://script.google.com và sửa đổi nó để chỉ xóa một số sự kiện (một sự kiện định kỳ mới đã được thực hiện với một tên khác).

function delete_events()
{
  //take care: Date function starts at 0 for the month (January=0)
  var fromDate = new Date(2014,7,1,0,0,0); //This is August 1, 2014
  var toDate = new Date(2016,2,1,0,0,0);   //This is March 1, 2016 at 00h00'00"
  var calendarName = 'your_calendar_name';
  var toRemove = 'title_of_the_events';

  var calendar = CalendarApp.getCalendarsByName(calendarName)[0];
  var events = calendar.getEvents(fromDate, toDate,{search: toRemove});
  for(var i=0; i<events.length;i++)
  {
    var ev = events[i];
    if(ev.getTitle()==toRemove) //check if the title matches
    {
      Logger.log('Item '+ev.getTitle()+' found on '+ev.getStartTime()); // show event name and date in log
      //ev.deleteEvent(); //uncomment this line to actually do the delete !
    }
  }
}

2

Điều tốt nhất tôi đã tìm thấy là sử dụng chức năng xóa hàng loạt từ ứng dụng di động, Business Calendar Pro của Appgenixsoftware.


2

Có một ứng dụng API miễn phí tại http://www.gcaltoolkit.com . Nó có phiên bản mạng miễn phí cho 1000 mục và phiên bản có thể tải xuống cho Windows và Mac cũng có thể miễn phí. Tôi đã thử nó và nó làm việc nhanh chóng cho tôi.

Bạn có thể chọn theo ngày hoặc theo cụm từ tìm kiếm và có vẻ như bạn có thể sửa đổi thủ công thêm. Hoặc chỉ cần nhấp vào những cái bạn muốn xóa. Sau khi bạn quyết định, có một nút để cam kết các thay đổi của bạn trở lại Lịch Google.

Tôi thấy điều này rất hữu ích khi tôi gặp vấn đề tương tự vài phút trước và rất ngạc nhiên khi thấy nó không có ở đây.


-2

Nếu bạn muốn xóa tất cả các sự kiện trong lịch, bạn có thể vào cài đặt lịch và xóa toàn bộ lịch.

Nếu đó là lịch chính của bạn, nó sẽ xóa tất cả các mục của nó và nếu đó là một lịch khác, nó sẽ xóa toàn bộ lịch do đó bạn sẽ phải tạo một lịch mới.


2
không phải toàn bộ lịch. chỉ 3 ngày.
Arie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.