Gmail क्लाइंट का उपयोग करके Google कैलेंडर्स प्रबंधित करें

Gmail कैलेंडर जोड़ें, संपादित करें और हटाएँ

Aspose.Email अनुप्रयोगों को Gmail कैलेंडरों को उपयोग करके प्रबंधित करने की अनुमति देता है IGmailClient जो Gmail कैलेंडरों को जोड़ने, हटाने और अपडेट करने जैसी सुविधाएँ प्रदान करता है। यह क्लाइंट क्लास ExtendedCalendar प्रकार के ऑब्जेक्ट्स की सूची लौटाता है जिसमें Gmail कैलेंडर आइटम की जानकारी होती है। IGmailClient क्लास कैलेंडरों के लिए निम्नलिखित फ़ंक्शन उजागर करता है:

  • CreateCalendar नया कैलेंडर डालने के लिए इसे इस्तेमाल किया जा सकता है
  • ListCalendars इसे क्लाइंट के सभी कैलेंडरों की सूची प्राप्त करने के लिए उपयोग किया जा सकता है
  • DeleteCalendar इसे कैलेंडर को हटाने के लिए उपयोग किया जा सकता है
  • FetchCalendar इसे क्लाइंट के विशिष्ट कैलेंडर को लाने के लिए उपयोग किया जा सकता है
  • UpdateCalendar इस फ़ंक्शन का उपयोग क्लाइंट के संशोधित कैलेंडर को वापस डालने के लिए किया जाता है

कैलेंडर्स तक पहुँचने के लिए, Gmail खाते की क्रेडेंशियल्स का उपयोग कर GoogleTestUser इनिशियलाइज़ किया जाता है। GoogleOAuthHelper उपयोगकर्ता के लिए एक्सेस टोकन प्राप्त करता है, जिसे आगे IGmailClient इनिशियलाइज़ करने में प्रयोग किया जाता है।

Gmail कैलेंडर डालें, प्राप्त करें और अपडेट करें

कैलेंडर डालने के लिए, Calendar प्रकार का ऑब्जेक्ट इनिशियलाइज़ करें और इसका उपयोग करके डालें CreateCalendar() फ़ंक्शन। CreateCalendar() नवीनतम रूप से सम्मिलित कैलेंडर का आईडी लौटाता है। इस आईडी का उपयोग सर्वर से कैलेंडर लाने के लिए किया जा सकता है। निम्नलिखित कोड स्निपेट दर्शाता है कि कैलेंडर को कैसे सम्मिलित, प्राप्त और अपडेट किया जाए।

विशिष्ट Google कैलेंडर हटाएँ

एक विशिष्ट कैलेंडर को हटाने के लिए, हमें क्लाइंट के सभी कैलेंडर की सूची प्राप्त करनी होगी और फिर आवश्यकतानुसार हटाना होगा। ListCalendars() सूची लौटाता है ExtendedCalendar जिसमें Gmail कैलेंडर शामिल हैं। निम्नलिखित कोड स्निपेट दर्शाता है कि विशिष्ट कैलेंडर को कैसे हटाया जाए।

कैलेंडर एक्सेस नियंत्रण

Aspose.Email कैलेंडर आइटम्स तक पहुंच पर पूर्ण नियंत्रण प्रदान करता है। ListAccessRules() फ़ंक्शन द्वारा उजागर किया गया है IGmailClient जो सूची लौटाता है AccessControlRule. व्यक्तिगत नियम जानकारी को पुनः प्राप्त, संशोधित और क्लाइंट के कैलेंडर के लिए वापस सहेजा जा सकता है। IGmailClient एक्सेस कंट्रोल नियमों को प्रबंधित करने के लिए निम्नलिखित फ़ंक्शन शामिल हैं।

  • ListAccessRules यह फ़ंक्शन AccessControlRule की सूची प्रदान करता है
  • CreateAccessRule यह फ़ंक्शन कैलेंडर के लिए नया एक्सेस नियम बनाता है।
  • UpdateAccessRule यह फ़ंक्शन एक्सेस नियम को अपडेट करने के लिए उपयोग किया जाता है।
  • FetchAccessRule इसे क्लाइंट के कैलेंडर के लिए विशिष्ट एक्सेस नियम लाने के लिए इस्तेमाल किया जा सकता है
  • DeleteAccessRule यह फ़ंक्शन एक्सेस नियम को हटाने के लिए उपयोग किया जाता है।

निम्नलिखित कोड स्निपेट दिखाता है कि एक्सेस नियम प्रबंधन के फ़ंक्शन कैसे उपयोग करें:

कैलेंडर क्लाइंट सेटिंग्स और रंग जानकारी

Aspose.Email क्लाइंट सेटिंग्स तक पहुँचने का समर्थन करता है, उपयोग करके IGmailClient.GetSettings(). यह नीचे दिए गए अनुसार सेटिंग्स की सूची लौटाता है:

  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

इसी तरह क्लाइंट्स के लिए रंग जानकारी को भी उपयोग करके प्राप्त किया जा सकता है IGmailClient.GetColors(). यह रंग जानकारी ऑब्जेक्ट फोरग्राउंड रंगों, बैकग्राउंड रंगों और अपडेट तिथि व समय की सूची लौटाता है।

क्लाइंट सेटिंग्स तक पहुँच

निम्नलिखित कोड स्निपेट दिखाता है कि फ़ंक्शन को क्लाइंट सेटिंग्स एक्सेस करने के लिए कैसे उपयोग किया जा सकता है:

रंग जानकारी तक पहुँच

निम्नलिखित कोड स्निपेट दिखाता है कि फ़ंक्शन को क्लाइंट रंग सेटिंग्स एक्सेस करने के लिए कैसे उपयोग किया जा सकता है।

Google कैलेंडर नियुक्तियों को प्रबंधित करें

Aspose.Email Google कैलेंडरों में नियुक्तियों के साथ काम करने के लिए विशेषताएं प्रदान करता है। Google कैलेंडर में नियुक्तियों पर निम्नलिखित कार्य किए जा सकते हैं:

  1. नियुक्तियाँ जोड़ें।
  2. नियुक्तियों की सूची प्राप्त करें।
  3. एक विशिष्ट नियुक्ति प्राप्त करें।
  4. एक अपॉइंटमेंट को अपडेट करें।
  5. नियुक्ति को एक कैलेंडर से दूसरे कैलेंडर में स्थानांतरित करें।
  6. नियुक्ति हटाएँ।

IGmailClient फ़ंक्शन प्रदान करता है जैसे CreateAppointment, FetchAppointment, UpdateAppointment, ListAppointments, MoveAppointment और DeleteAppointment.

Google कैलेंडर में अपॉइंटमेंट जोड़ें

निम्नलिखित कोड उदाहरण कैलेंडर में एक अपॉइंटमेंट जोड़ने की सुविधा को दर्शाता है। इसे प्राप्त करने के लिए, नीचे दिए चरणों का पालन करें:

  1. एक कैलेंडर बनाएं और डालें।
  2. एक नए कैलेंडर से अपॉइंटमेंट की सूची प्राप्त करें।
  3. एक अपॉइंटमेंट बनाएँ।
  4. एक अपॉइंटमेंट डालें।

Google कैलेंडर नियुक्तियों को प्राप्त करें और अपडेट करें

यहाँ कैलेंडर को प्राप्त करने और अपडेट करने का प्रदर्शन इस प्रकार है:

  1. विशिष्ट अपॉइंटमेंट प्राप्त करें।
  2. अपॉइंटमेंट संशोधित करें।
  3. कैलेंडर में अपॉइंटमेंट अपडेट करें।

मान लिया गया है कि "calendarId" आईडी वाला कैलेंडर और "AppointmentUniqueId" अद्वितीय आईडी वाली नियुक्ति पहले ही निकाली जा चुकी है। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे एक नियुक्ति प्राप्त और अपडेट की जाती है।

Google कैलेंडर में नियुक्तियों को स्थानांतरित करें और हटाएँ

स्रोत कैलेंडर, गंतव्य कैलेंडर और स्रोत कैलेंडर में नियुक्ति का अद्वितीय आईडी प्रदान करके नियुक्ति को स्थानांतरित किया जा सकता है। निम्नलिखित कोड स्निपेट दिखाता है कि कैसे एक नियुक्ति को स्थानांतरित और हटाया जाता है।

Google कैलेंडर के लिए FreeBusy क्वेरी

Aspose.Email ऐसी क्वेरी तंत्र प्रदान करता है जिससे यह जांचा जा सके कि किसी नियुक्ति की नियत तिथि निकट है या नहीं, मानदंड के अनुसार। इसके लिए FreebusyQuery क्लास उपलब्ध कराई गई है, जो किसी विशेष कैलेंडर के लिए क्वेरी तैयार करने की अनुमति देती है।

यह कोड उदाहरण कैलेंडर को क्वेरी करने की सुविधा दर्शाता है। इस उदाहरण में निम्नलिखित कार्य किए जाते हैं:

  1. कैलेंडर बनाएं और सम्मिलित करें
  2. एक अपॉइंटमेंट बनाएं
  3. अपॉइंटमेंट सम्मिलित करें
  4. FreeBusyQuery तैयार करें
  5. 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);
    }
}