Kelola Google Calendar menggunakan Gmail Client

Menambahkan, Mengedit, dan Menghapus Kalender Gmail

Aspose.Email memungkinkan aplikasi mengelola kalender Gmail menggunakan IGmailClient yang menyediakan fitur seperti menambahkan, menghapus, dan memperbarui kalender Gmail. Kelas klien ini mengembalikan daftar objek tipe ExtendedCalendar yang berisi informasi tentang item kalender Gmail. IGmailClient kelas ini menyediakan fungsi-fungsi berikut untuk kalender:

  • CreateCalendar Dapat digunakan untuk menyisipkan kalender baru
  • ListCalendars Dapat digunakan untuk mendapatkan daftar semua kalender dari seorang klien
  • DeleteCalendar Dapat digunakan untuk menghapus kalender
  • FetchCalendar Dapat digunakan untuk mengambil kalender tertentu milik klien
  • UpdateCalendar Fungsi ini digunakan untuk menyisipkan kembali kalender yang telah dimodifikasi dari klien

Untuk mengakses kalender, GoogleTestUser diinisialisasi menggunakan kredensial akun Gmail. GoogleOAuthHelper digunakan untuk mendapatkan token akses pengguna yang selanjutnya digunakan untuk menginisialisasi IGmailClient.

Menyisipkan, Mengambil, dan Memperbarui Google Calendar

Untuk memasukkan kalender, inisialisasi objek tipe Calendar dan masukkan menggunakan CreateCalendar() fungsi. CreateCalendar() mengembalikan ID kalender yang baru dimasukkan. ID ini dapat digunakan untuk mengambil kalender dari server. Potongan kode berikut menunjukkan cara menyisipkan, mengambil, dan memperbarui kalender.

Menghapus Kalender Google Tertentu

Untuk menghapus kalender tertentu, kita harus mendapatkan daftar semua kalender klien dan kemudian menghapusnya sesuai kebutuhan. ListCalendars() mengembalikan daftar ExtendedCalendar yang berisi kalender Gmail. Potongan kode berikut menunjukkan cara menghapus kalender tertentu.

Kontrol Akses Kalender

Aspose.Email memberikan kontrol penuh atas akses ke item kalender. ListAccessRules() fungsi disediakan oleh IGmailClient yang mengembalikan daftar AccessControlRule. Informasi aturan individual dapat diambil, dimodifikasi, dan disimpan kembali untuk kalender klien. IGmailClient berisi fungsi-fungsi berikut untuk mengelola aturan kontrol akses.

Potongan kode berikut menunjukkan cara menggunakan fungsi untuk mengelola aturan akses:

Pengaturan Klien Kalender dan Informasi Warna

Aspose.Email mendukung akses ke pengaturan Klien dengan menggunakan IGmailClient.GetSettings(). Ini mengembalikan daftar pengaturan seperti di bawah ini:

  1. dateFieldOrder
  2. displayAllTimezones
  3. hideInvitations
  4. format24HourTime
  5. defaultCalendarMode
  6. defaultEventLength
  7. locale
  8. remindOnRespondedEventsOnly
  9. alternateCalendar
  10. userLocation
  11. hideWeekends
  12. showDeclinedEvents
  13. weekStart
  14. weather
  15. customCalendarMode
  16. timezoneLabel
  17. timezone
  18. useKeyboardShortcuts
  19. country

Info warna untuk klien juga dapat diambil menggunakan IGmailClient.GetColors(). Objek info warna ini mengembalikan daftar warna Latar Depan, warna latar belakang serta tanggal dan waktu pembaruan.

Akses Pengaturan Klien

Potongan kode berikut menunjukkan cara fungsi-fungsi dapat digunakan untuk mengakses pengaturan klien:

Akses Informasi Warna

Potongan kode berikut menunjukkan cara fungsi-fungsi dapat digunakan untuk mengakses pengaturan warna klien.

Kelola Janji Kalender Google

Aspose.Email menyediakan fitur untuk bekerja dengan Janji di kalender Google. Tugas berikut dapat dilakukan pada janji di kalender Google:

  1. Tambahkan Janji.
  2. Ambil daftar janji.
  3. Ambil janji tertentu.
  4. Perbarui janji.
  5. Pindahkan janji dari satu kalender ke kalender lain.
  6. Hapus janji.

IGmailClient menyediakan fungsi seperti CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment dan DeleteAppointment.

Menambahkan Janji ke Google Calendar

Contoh kode berikut menunjukkan fitur menambahkan janji dalam kalender. Untuk mencapainya, ikuti langkah-langkah berikut:

  1. Buat dan sisipkan kalender.
  2. Mengambil daftar janji dari kalender baru.
  3. Buat sebuah janji.
  4. Menyisipkan janji.

Ambil dan Perbarui Janji Kalender Google

Berikut ini demonstrasi pengambilan dan pembaruan kalender:

  1. Ambil janji tertentu.
  2. Ubah janji.
  3. Perbarui janji di kalender.

Diasumsikan bahwa kalender dengan id "calendarId" dan id unik janji "AppointmentUniqueId" sudah diambil. Potongan kode berikut memperlihatkan cara mengambil dan memperbarui sebuah janji.

Pindahkan dan Hapus Janji di Kalender Google

Janji dapat dipindahkan dengan menyediakan kalender sumber, kalender tujuan, dan id unik janji di kalender sumber. Potongan kode berikut memperlihatkan cara memindahkan dan menghapus sebuah janji.

Query FreeBusy untuk Kalender Google

Aspose.Email menyediakan mekanisme kueri untuk memeriksa apakah sebuah janji jatuh tempo atau tidak sesuai kriteria. Kelas FreebusyQuery disediakan untuk tujuan ini yang memungkinkan menyiapkan kueri untuk kalender tertentu.

Contoh kode ini mendemonstrasikan fitur kueri kalender. Tugas berikut dilakukan dalam contoh ini:

  1. Buat dan sisipkan kalender
  2. Buat janji
  3. Masukkan janji
  4. Siapkan FreeBusyQuery
  5. Dapatkan FreebusyResponse
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Use the GoogleUser and GoogleOAuthHelper classes below to receive an access token
using (IGmailClient client = GmailClient.GetInstance(accessToken, user.Email))
{
    // Initialize calendar item
    Aspose.Email.Clients.Google.Calendar calendar1 = new Aspose.Email.Clients.Google.Calendar("summary - " + Guid.NewGuid().ToString(), null, null, "Europe/Kiev");

    // Insert calendar and get back id of newly inserted calendar and Fetch the same calendar using calendar id
    string id = client.CreateCalendar(calendar1);
    Aspose.Email.Clients.Google.Calendar cal1 = client.FetchCalendar(id);
    string calendarId1 = cal1.Id;
    try
    {
        // Get list of appointments in newly inserted calendar. It should be zero
        Appointment[] appointments = client.ListAppointments(calendarId1);
        if (appointments.Length != 0)
        {
            Console.WriteLine("Wrong number of appointments");
            return;
        }

        // Create a new appointment and Calculate appointment start and finish time
        DateTime startDate = DateTime.Now;
        DateTime endDate = startDate.AddHours(1);

        // Create attendees list for appointment
        MailAddressCollection attendees = new MailAddressCollection();
        attendees.Add("user1@domain.com");
        attendees.Add("user2@domain.com");

        // Create appointment
        Appointment app1 = new Appointment("Location - " + Guid.NewGuid().ToString(), startDate, endDate, "user2@domain.com", attendees);
        app1.Summary = "Summary - " + Guid.NewGuid().ToString();
        app1.Description = "Description - " + Guid.NewGuid().ToString();
        app1.StartTimeZone = "Europe/Kiev";
        app1.EndTimeZone = "Europe/Kiev";

        // Insert the newly created appointment and get back the same in case of successful insertion
        Appointment app2 = client.CreateAppointment(calendarId1, app1);

        // Create Freebusy query by setting min/max timeand time zone
        FreebusyQuery query = new FreebusyQuery();
        query.TimeMin = DateTime.Now.AddDays(-1);
        query.TimeMax = DateTime.Now.AddDays(1);
        query.TimeZone = "Europe/Kiev";

        // Set calendar item to search and Get the reponse of query containing 
        query.Items.Add(cal1.Id);
        FreebusyResponse resp = client.GetFreebusyInfo(query);
        // Delete the appointment
        client.DeleteAppointment(calendarId1, app2.UniqueId);
    }
    finally
    {
        // Delete the calendar
        client.DeleteCalendar(cal1.Id);
    }
}