---
title: تكامل Google Calendar
description: "إدارة الأحداث والجداول الزمنية مع تكامل Google Calendar لـ CrewAI."
icon: "calendar"
mode: "wide"
---

## نظرة عامة

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

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

قبل استخدام تكامل Google Calendar، تأكد من توفر ما يلي:

- حساب [CrewAI AMP](https://app.crewai.com) مع اشتراك فعّال
- حساب Google مع إمكانية الوصول إلى Google Calendar
- ربط حساب Google الخاص بك عبر [صفحة التكاملات](https://app.crewai.com/crewai_plus/connectors)

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

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

1. انتقل إلى [تكاملات CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
2. ابحث عن **Google Calendar** في قسم تكاملات المصادقة
3. انقر على **Connect** وأكمل عملية OAuth
4. امنح الصلاحيات اللازمة للوصول إلى التقويم
5. انسخ رمز المؤسسة من [إعدادات التكامل](https://app.crewai.com/crewai_plus/settings/integrations)

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

```bash
uv add crewai-tools
```

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

<Note>
  لاستخدام التكاملات مع `Agent(apps=[])`, يجب تعيين متغير البيئة
  `CREWAI_PLATFORM_INTEGRATION_TOKEN` برمز المؤسسة الخاص بك.
</Note>

```bash
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
```

أو أضفه إلى ملف `.env`:

```
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
```

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

<AccordionGroup>
  <Accordion title="google_calendar/get_availability">
    **الوصف:** الحصول على توفر التقويم (معلومات مشغول/متاح).

    **المعاملات:**
    - `timeMin` (string, مطلوب): وقت البداية (بصيغة RFC3339)
    - `timeMax` (string, مطلوب): وقت النهاية (بصيغة RFC3339)
    - `items` (array, مطلوب): معرّفات التقاويم المراد التحقق منها
      ```json
      [
        {
          "id": "calendar_id"
        }
      ]
      ```
    - `timeZone` (string, اختياري): المنطقة الزمنية المستخدمة في الاستجابة. الافتراضي هو UTC.
    - `groupExpansionMax` (integer, اختياري): الحد الأقصى لعدد معرّفات التقاويم لمجموعة واحدة. الحد الأقصى: 100
    - `calendarExpansionMax` (integer, اختياري): الحد الأقصى لعدد التقاويم لتقديم معلومات التوفر. الحد الأقصى: 50

  </Accordion>

  <Accordion title="google_calendar/create_event">
    **الوصف:** إنشاء حدث جديد في التقويم المحدد.

    **المعاملات:**
    - `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, اختياري): قائمة الحضور للحدث.
      ```json
      [
        {
          "email": "attendee@example.com",
          "displayName": "Attendee Name",
          "optional": false
        }
      ]
      ```
    - `reminders` (object, اختياري): معلومات حول تذكيرات الحدث.
      ```json
      {
        "useDefault": true,
        "overrides": [
          {
            "method": "email",
            "minutes": 15
          }
        ]
      }
      ```
    - `conferenceData` (object, اختياري): المعلومات المتعلقة بالمؤتمر، مثل تفاصيل مؤتمر Google Meet.
      ```json
      {
        "createRequest": {
          "requestId": "unique-request-id",
          "conferenceSolutionKey": {
            "type": "hangoutsMeet"
          }
        }
      }
      ```
    - `visibility` (string, اختياري): ظهور الحدث. الخيارات: default, public, private, confidential. الافتراضي: default
    - `transparency` (string, اختياري): ما إذا كان الحدث يحجب الوقت في التقويم. الخيارات: opaque, transparent. الافتراضي: opaque

  </Accordion>

  <Accordion title="google_calendar/view_events">
    **الوصف:** استرجاع الأحداث للتقويم المحدد.

    **المعاملات:**
    - `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 ليتم تقديمه في الاستجابة.

  </Accordion>

  <Accordion title="google_calendar/update_event">
    **الوصف:** تحديث حدث موجود.

    **المعاملات:**
    - `calendarId` (string, مطلوب): معرّف التقويم
    - `eventId` (string, مطلوب): معرّف الحدث المراد تحديثه
    - `summary` (string, اختياري): عنوان الحدث المحدّث
    - `description` (string, اختياري): وصف الحدث المحدّث
    - `start_dateTime` (string, اختياري): وقت البداية المحدّث
    - `end_dateTime` (string, اختياري): وقت النهاية المحدّث

  </Accordion>

  <Accordion title="google_calendar/delete_event">
    **الوصف:** حذف حدث محدد.

    **المعاملات:**
    - `calendarId` (string, مطلوب): معرّف التقويم
    - `eventId` (string, مطلوب): معرّف الحدث المراد حذفه

  </Accordion>

  <Accordion title="google_calendar/view_calendar_list">
    **الوصف:** استرجاع قائمة تقاويم المستخدم.

    **المعاملات:**
    - `maxResults` (integer, اختياري): الحد الأقصى لعدد الإدخالات في صفحة نتائج واحدة. الحد الأدنى: 1
    - `pageToken` (string, اختياري): رمز يحدد صفحة النتائج المراد إرجاعها.
    - `showDeleted` (boolean, اختياري): ما إذا كان يجب تضمين إدخالات قائمة التقويم المحذوفة. الافتراضي: false
    - `showHidden` (boolean, اختياري): ما إذا كان يجب عرض الإدخالات المخفية. الافتراضي: false
    - `minAccessRole` (string, اختياري): الحد الأدنى لدور الوصول للمستخدم. الخيارات: freeBusyReader, owner, reader, writer

  </Accordion>
</AccordionGroup>

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

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

```python
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()
```

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

```python
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()
```

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

```python
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()
```

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

```python
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()
```

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

```python
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 المناسبة لنطاقات الوقت عند التحقق من التوفر
- تأكد من اتساق المناطق الزمنية عبر جميع العمليات
- تحقق من صحة معرّفات التقاويم عند التحقق من تقاويم متعددة

**تحديث الأحداث وحذفها**

- تحقق من صحة معرّفات الأحداث ووجودها
- تأكد من أن لديك صلاحيات التحرير للأحداث
- تحقق من أن ملكية التقويم تسمح بالتعديلات

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

<Card title="تحتاج مساعدة؟" icon="headset" href="mailto:support@crewai.com">
  تواصل مع فريق الدعم للحصول على المساعدة في إعداد تكامل Google Calendar
  أو استكشاف الأخطاء وإصلاحها.
</Card>
