Bagaimana cara menghapus semua acara pada banyak tanggal sekaligus tetapi tidak seluruh Kalender di Google Kalender?

22

Bagaimana cara menghapus semua acara pada banyak tanggal sekaligus tetapi tidak seluruh Kalender di Google Kalender? Saya mencoba mengklik pada tanggal yang ada acara untuk dihapus dan menyeret mouse saya ke 2 hari setelah tanggal itu, tetapi kemudian saya selalu melihat "buat acara". Saya pikir saya bisa menekan backspaceatau deletemenghapus semua acara itu.

Apa yang saya lakukan sejauh ini = menghapus acara satu per satu :(

Arie
sumber
Tidak ada built-in yang memungkinkan Anda melakukan ini. Jika ada API untuk kalender, seseorang mungkin dapat membuat aplikasi untuk melakukan ini, tapi saya tidak tahu.
ale

Jawaban:

25

Saya sudah bisa melakukan ini dengan Google Script seperti ini. Anda dapat mengubah ini untuk menentukan hari yang ingin Anda hapus, dll.

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();
    }
 }
Glen Little
sumber
Di mana Anda memasukkan ini?
justintime
4
Buat skrip baru di Google Script dan rekatkan di. Ubah calendarNamealamat e-mail (GMail) yang terkait dengan kalender.
Emaad Ahmed Manzoor
2
Untuk variabel calendarName, milik saya tidak berfungsi untuk kalender MAIN saya kecuali saya menggunakan alamat gmail lengkap saya yang sebenarnya. Saat melihat nama kalender ini di sisi kiri Kalender Google saya, itu hanya muncul sebagai nama depan dan belakang saya, tetapi itu tidak berfungsi untuk variabel calendarName saya. Untuk kalender sub-akun saya, nama kalender yang ditampilkan di sisi kiri kalender berfungsi dengan baik. Saya akan mendapatkan pesan kesalahan berikut ketika saya menggunakan nama kalender yang salah, jadi jika Anda melihat pesan TypeError: Tidak dapat memanggil metode "getEvents" dari undefined.
Kurt
1
(jawaban di atas diedit dari jawaban yang diubah menjadi komentar. Saya pikir informasi ini mungkin berguna, jadi saya melestarikannya)
jonsca
8

Saya menemukan modifikasi yang dapat membuat skrip ini bermanfaat jika Anda ingin mencari acara tertentu. Bahwa Anda sengaja atau tidak diimpor. Katakanlah banyak entri memiliki Siklus 1 Checkpoint 10 dalam nama diikuti oleh angka atau apa pun. Maklum bahwa "Cycle 1 Checkpoint 10", "Cycle 1 Checkpoint 20" akan ditemukan tetapi "Cycle1 Checkpoint 10" tidak ..

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 !
  }
}
Guy Forssman
sumber
Ini memperluas skrip di atas. Izinkan saya menghapus kurikulum setahun penuh dalam hitungan menit, terima kasih
Daniel Filatov
3

Setelah bermigrasi dari sistem kalender sebelumnya ke Google Apps, semua acara berulang diimpor secara terpisah. Saya membuat Google Script baru di https://script.google.com dan memodifikasinya untuk menghapus hanya beberapa peristiwa (acara berulang baru sudah dibuat dengan nama lain).

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 !
    }
  }
}
DaveG
sumber
2

Hal terbaik yang saya temukan adalah menggunakan fungsi hapus massal dari aplikasi seluler, Kalender Bisnis Pro oleh Appgenixsoftware.

Strizzle
sumber
2

Ada klien API gratis di http://www.gcaltoolkit.com . Ini memiliki versi jaringan yang gratis untuk 1000 entri dan versi yang dapat diunduh untuk Windows dan Mac yang mungkin gratis juga. Saya mencobanya dan itu bekerja dengan cepat untuk saya.

Anda dapat memilih berdasarkan tanggal atau dengan istilah pencarian dan sepertinya Anda dapat memodifikasi lebih lanjut secara manual. Atau cukup klik yang ingin Anda hapus. Setelah Anda memutuskan, ada tombol untuk mengembalikan perubahan Anda ke Kalender Google.

Saya menemukan ini sangat membantu ketika saya memiliki masalah yang sama beberapa menit yang lalu dan terkejut melihat itu tidak ada di sini.

Paul
sumber
-2

Jika Anda ingin menghapus semua acara dalam kalender, Anda dapat pergi ke pengaturan kalender dan menghapus seluruh kalender.

Jika ini adalah kalender utama Anda, ia akan menghapus semua entri, dan jika itu adalah kalender lain, itu akan menghapus seluruh kalender sehingga Anda harus membuat yang baru.

Greg
sumber
2
bukan seluruh kalender. hanya 3 kencan.
Arie