الانتقال إلى المحتوى الرئيسي

نظرة عامة

مكّن وكلاءك من إدارة أحداث التقويم والجداول الزمنية والتوفر عبر Google Calendar. أنشئ الأحداث وحدّثها، وأدر الحضور، وتحقق من التوفر، وبسّط سير عمل الجدولة باستخدام الأتمتة المدعومة بالذكاء الاصطناعي.

المتطلبات الأساسية

قبل استخدام تكامل Google Calendar، تأكد من توفر ما يلي:
  • حساب CrewAI AMP مع اشتراك فعّال
  • حساب Google مع إمكانية الوصول إلى Google Calendar
  • ربط حساب Google الخاص بك عبر صفحة التكاملات

إعداد تكامل Google Calendar

1. ربط حساب Google الخاص بك

  1. انتقل إلى تكاملات CrewAI AMP
  2. ابحث عن Google Calendar في قسم تكاملات المصادقة
  3. انقر على Connect وأكمل عملية OAuth
  4. امنح الصلاحيات اللازمة للوصول إلى التقويم
  5. انسخ رمز المؤسسة من إعدادات التكامل

2. تثبيت الحزمة المطلوبة

uv add crewai-tools

3. إعداد متغير البيئة

لاستخدام التكاملات مع Agent(apps=[]), يجب تعيين متغير البيئة CREWAI_PLATFORM_INTEGRATION_TOKEN برمز المؤسسة الخاص بك.
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
أو أضفه إلى ملف .env:
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token

الإجراءات المتاحة

الوصف: الحصول على توفر التقويم (معلومات مشغول/متاح).المعاملات:
  • timeMin (string, مطلوب): وقت البداية (بصيغة RFC3339)
  • timeMax (string, مطلوب): وقت النهاية (بصيغة RFC3339)
  • items (array, مطلوب): معرّفات التقاويم المراد التحقق منها
    [
      {
        "id": "calendar_id"
      }
    ]
    
  • timeZone (string, اختياري): المنطقة الزمنية المستخدمة في الاستجابة. الافتراضي هو UTC.
  • groupExpansionMax (integer, اختياري): الحد الأقصى لعدد معرّفات التقاويم لمجموعة واحدة. الحد الأقصى: 100
  • calendarExpansionMax (integer, اختياري): الحد الأقصى لعدد التقاويم لتقديم معلومات التوفر. الحد الأقصى: 50
الوصف: إنشاء حدث جديد في التقويم المحدد.المعاملات:
  • calendarId (string, مطلوب): معرّف التقويم (استخدم ‘primary’ للتقويم الرئيسي)
  • summary (string, مطلوب): عنوان/ملخص الحدث
  • start_dateTime (string, مطلوب): وقت البداية بصيغة RFC3339 (مثال: 2024-01-20T10:00:00-07:00)
  • end_dateTime (string, مطلوب): وقت النهاية بصيغة RFC3339
  • description (string, اختياري): وصف الحدث
  • timeZone (string, اختياري): المنطقة الزمنية (مثال: America/Los_Angeles)
  • location (string, اختياري): الموقع الجغرافي للحدث كنص حر.
  • attendees (array, اختياري): قائمة الحضور للحدث.
    [
      {
        "email": "attendee@example.com",
        "displayName": "Attendee Name",
        "optional": false
      }
    ]
    
  • reminders (object, اختياري): معلومات حول تذكيرات الحدث.
    {
      "useDefault": true,
      "overrides": [
        {
          "method": "email",
          "minutes": 15
        }
      ]
    }
    
  • conferenceData (object, اختياري): المعلومات المتعلقة بالمؤتمر، مثل تفاصيل مؤتمر Google Meet.
    {
      "createRequest": {
        "requestId": "unique-request-id",
        "conferenceSolutionKey": {
          "type": "hangoutsMeet"
        }
      }
    }
    
  • visibility (string, اختياري): ظهور الحدث. الخيارات: default, public, private, confidential. الافتراضي: default
  • transparency (string, اختياري): ما إذا كان الحدث يحجب الوقت في التقويم. الخيارات: opaque, transparent. الافتراضي: opaque
الوصف: استرجاع الأحداث للتقويم المحدد.المعاملات:
  • calendarId (string, مطلوب): معرّف التقويم (استخدم ‘primary’ للتقويم الرئيسي)
  • timeMin (string, اختياري): الحد الأدنى للأحداث (بصيغة RFC3339)
  • timeMax (string, اختياري): الحد الأعلى للأحداث (بصيغة RFC3339)
  • maxResults (integer, اختياري): الحد الأقصى لعدد الأحداث (الافتراضي 10). الحد الأدنى: 1، الحد الأقصى: 2500
  • orderBy (string, اختياري): ترتيب الأحداث في النتيجة. الخيارات: startTime, updated. الافتراضي: startTime
  • singleEvents (boolean, اختياري): ما إذا كان يجب توسيع الأحداث المتكررة إلى نُسخ فردية. الافتراضي: true
  • showDeleted (boolean, اختياري): ما إذا كان يجب تضمين الأحداث المحذوفة. الافتراضي: false
  • showHiddenInvitations (boolean, اختياري): ما إذا كان يجب تضمين الدعوات المخفية. الافتراضي: false
  • q (string, اختياري): مصطلحات بحث نصية حرة للعثور على الأحداث المطابقة في أي حقل.
  • pageToken (string, اختياري): رمز يحدد صفحة النتائج المراد إرجاعها.
  • timeZone (string, اختياري): المنطقة الزمنية المستخدمة في الاستجابة.
  • updatedMin (string, اختياري): الحد الأدنى لوقت آخر تعديل للحدث (بصيغة RFC3339) للتصفية.
  • iCalUID (string, اختياري): يحدد معرّف حدث بصيغة iCalendar ليتم تقديمه في الاستجابة.
الوصف: تحديث حدث موجود.المعاملات:
  • calendarId (string, مطلوب): معرّف التقويم
  • eventId (string, مطلوب): معرّف الحدث المراد تحديثه
  • summary (string, اختياري): عنوان الحدث المحدّث
  • description (string, اختياري): وصف الحدث المحدّث
  • start_dateTime (string, اختياري): وقت البداية المحدّث
  • end_dateTime (string, اختياري): وقت النهاية المحدّث
الوصف: حذف حدث محدد.المعاملات:
  • calendarId (string, مطلوب): معرّف التقويم
  • eventId (string, مطلوب): معرّف الحدث المراد حذفه
الوصف: استرجاع قائمة تقاويم المستخدم.المعاملات:
  • maxResults (integer, اختياري): الحد الأقصى لعدد الإدخالات في صفحة نتائج واحدة. الحد الأدنى: 1
  • pageToken (string, اختياري): رمز يحدد صفحة النتائج المراد إرجاعها.
  • showDeleted (boolean, اختياري): ما إذا كان يجب تضمين إدخالات قائمة التقويم المحذوفة. الافتراضي: false
  • showHidden (boolean, اختياري): ما إذا كان يجب عرض الإدخالات المخفية. الافتراضي: false
  • minAccessRole (string, اختياري): الحد الأدنى لدور الوصول للمستخدم. الخيارات: freeBusyReader, owner, reader, writer

أمثلة الاستخدام

إعداد Agent أساسي للتقويم

from crewai import Agent, Task, Crew

# Create an agent with Google Calendar capabilities
calendar_agent = Agent(
    role="Schedule Manager",
    goal="Manage calendar events and scheduling efficiently",
    backstory="An AI assistant specialized in calendar management and scheduling coordination.",
    apps=['google_calendar']  # All Google Calendar actions will be available
)

# Task to create a meeting
create_meeting_task = Task(
    description="Create a team standup meeting for tomorrow at 9 AM with the development team",
    agent=calendar_agent,
    expected_output="Meeting created successfully with Google Meet link"
)

# Run the task
crew = Crew(
    agents=[calendar_agent],
    tasks=[create_meeting_task]
)

crew.kickoff()

تصفية أدوات التقويم المحددة

meeting_coordinator = Agent(
    role="Meeting Coordinator",
    goal="Coordinate meetings and check availability",
    backstory="An AI assistant that focuses on meeting scheduling and availability management.",
    apps=['google_calendar/create_event', 'google_calendar/get_availability']
)

# Task to schedule a meeting with availability check
schedule_meeting = Task(
    description="Check availability for next week and schedule a project review meeting with stakeholders",
    agent=meeting_coordinator,
    expected_output="Meeting scheduled after checking availability of all participants"
)

crew = Crew(
    agents=[meeting_coordinator],
    tasks=[schedule_meeting]
)

crew.kickoff()

إدارة الأحداث وتحديثاتها

from crewai import Agent, Task, Crew

event_manager = Agent(
    role="Event Manager",
    goal="Manage and update calendar events efficiently",
    backstory="An experienced event manager who handles event logistics and updates.",
    apps=['google_calendar']
)

# Task to manage event updates
event_management = Task(
    description="""
    1. List all events for this week
    2. Update any events that need location changes to include video conference links
    3. Check availability for upcoming meetings
    """,
    agent=event_manager,
    expected_output="Weekly events updated with proper locations and availability checked"
)

crew = Crew(
    agents=[event_manager],
    tasks=[event_management]
)

crew.kickoff()

التوفر وإدارة التقويم

from crewai import Agent, Task, Crew

availability_coordinator = Agent(
    role="Availability Coordinator",
    goal="Coordinate availability and manage calendars for scheduling",
    backstory="An AI assistant that specializes in availability management and calendar coordination.",
    apps=['google_calendar']
)

# Task to coordinate availability
availability_task = Task(
    description="""
    1. Get the list of available calendars
    2. Check availability for all calendars next Friday afternoon
    3. Create a team meeting for the first available 2-hour slot
    4. Include Google Meet link and send invitations
    """,
    agent=availability_coordinator,
    expected_output="Team meeting scheduled based on availability with all team members invited"
)

crew = Crew(
    agents=[availability_coordinator],
    tasks=[availability_task]
)

crew.kickoff()

سير عمل الجدولة الآلية

from crewai import Agent, Task, Crew

scheduling_automator = Agent(
    role="Scheduling Automator",
    goal="Automate scheduling workflows and calendar management",
    backstory="An AI assistant that automates complex scheduling scenarios and calendar workflows.",
    apps=['google_calendar']
)

# Complex scheduling automation task
automation_task = Task(
    description="""
    1. List all upcoming events for the next two weeks
    2. Identify any scheduling conflicts or back-to-back meetings
    3. Suggest optimal meeting times by checking availability
    4. Create buffer time between meetings where needed
    5. Update event descriptions with agenda items and meeting links
    """,
    agent=scheduling_automator,
    expected_output="Calendar optimized with resolved conflicts, buffer times, and updated meeting details"
)

crew = Crew(
    agents=[scheduling_automator],
    tasks=[automation_task]
)

crew.kickoff()

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة

أخطاء المصادقة
  • تأكد من أن حساب Google الخاص بك لديه الصلاحيات اللازمة للوصول إلى التقويم
  • تحقق من أن اتصال OAuth يتضمن جميع النطاقات المطلوبة لـ Google Calendar API
  • تحقق مما إذا كانت إعدادات مشاركة التقويم تسمح بمستوى الوصول المطلوب
مشاكل إنشاء الأحداث
  • تحقق من صحة صيغ الوقت (صيغة RFC3339)
  • تأكد من صحة صيغة عناوين البريد الإلكتروني للحضور
  • تحقق من وجود التقويم المستهدف وإمكانية الوصول إليه
  • تحقق من صحة تحديد المناطق الزمنية
التوفر وتعارضات الوقت
  • استخدم صيغة RFC3339 المناسبة لنطاقات الوقت عند التحقق من التوفر
  • تأكد من اتساق المناطق الزمنية عبر جميع العمليات
  • تحقق من صحة معرّفات التقاويم عند التحقق من تقاويم متعددة
تحديث الأحداث وحذفها
  • تحقق من صحة معرّفات الأحداث ووجودها
  • تأكد من أن لديك صلاحيات التحرير للأحداث
  • تحقق من أن ملكية التقويم تسمح بالتعديلات

الحصول على المساعدة

تحتاج مساعدة؟

تواصل مع فريق الدعم للحصول على المساعدة في إعداد تكامل Google Calendar أو استكشاف الأخطاء وإصلاحها.