mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-04-14 15:02:37 +00:00
367 lines
15 KiB
Plaintext
367 lines
15 KiB
Plaintext
---
|
|
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>
|