langflow-base-nightly 0.5.0.dev33__py3-none-any.whl → 0.5.0.dev35__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. langflow/alembic/versions/1cb603706752_modify_uniqueness_constraint_on_file_.py +279 -0
  2. langflow/api/v1/endpoints.py +1 -1
  3. langflow/base/composio/composio_base.py +1092 -126
  4. langflow/components/agents/mcp_component.py +21 -4
  5. langflow/components/composio/__init__.py +24 -0
  6. langflow/components/composio/composio_api.py +116 -136
  7. langflow/components/composio/dropbox_compnent.py +11 -0
  8. langflow/components/composio/github_composio.py +1 -639
  9. langflow/components/composio/gmail_composio.py +26 -394
  10. langflow/components/composio/googlecalendar_composio.py +2 -778
  11. langflow/components/composio/googlemeet_composio.py +11 -0
  12. langflow/components/composio/googletasks_composio.py +8 -0
  13. langflow/components/composio/linear_composio.py +11 -0
  14. langflow/components/composio/outlook_composio.py +1 -755
  15. langflow/components/composio/reddit_composio.py +11 -0
  16. langflow/components/composio/slack_composio.py +1 -576
  17. langflow/components/composio/slackbot_composio.py +11 -0
  18. langflow/components/composio/supabase_composio.py +11 -0
  19. langflow/components/composio/todoist_composio.py +11 -0
  20. langflow/components/composio/youtube_composio.py +11 -0
  21. langflow/components/data/kb_ingest.py +15 -16
  22. langflow/components/processing/save_file.py +31 -4
  23. langflow/custom/utils.py +30 -7
  24. langflow/frontend/assets/{SlackIcon-Bikuxo8x.js → SlackIcon-B260Qg_R.js} +1 -1
  25. langflow/frontend/assets/{Wikipedia-B6aCFf5-.js → Wikipedia-BB2mbgyd.js} +1 -1
  26. langflow/frontend/assets/{Wolfram-CekL_M-a.js → Wolfram-DytXC9hF.js} +1 -1
  27. langflow/frontend/assets/{index-D1RgjMON.js → index-3TJWUdmx.js} +1 -1
  28. langflow/frontend/assets/{index-B4xLpgbM.js → index-3qMh9x6K.js} +1 -1
  29. langflow/frontend/assets/{index-DEuXrfXH.js → index-3uOAA_XX.js} +1 -1
  30. langflow/frontend/assets/{index-DTJX3yQa.js → index-4eRtaV45.js} +1 -1
  31. langflow/frontend/assets/index-7xXgqu09.js +1 -0
  32. langflow/frontend/assets/{index-BRNhftot.js → index-AY5Dm2mG.js} +1 -1
  33. langflow/frontend/assets/{index-4Tl3Nxdo.js → index-AlJ7td-D.js} +1 -1
  34. langflow/frontend/assets/{index-D2nHdRne.js → index-B-c82Fnu.js} +1 -1
  35. langflow/frontend/assets/{index-C3RZz8WE.js → index-B2ggrBuR.js} +1 -1
  36. langflow/frontend/assets/{index-in188l0A.js → index-B536IPXH.js} +1 -1
  37. langflow/frontend/assets/{index-CP0tFKwN.js → index-B5ed-sAv.js} +1 -1
  38. langflow/frontend/assets/{index-CAzSTGAM.js → index-B8TlNgn-.js} +1 -1
  39. langflow/frontend/assets/{index-09CVJwsY.js → index-B8y58M9b.js} +1 -1
  40. langflow/frontend/assets/{index-B9uOBe6Y.js → index-B9Mo3ndZ.js} +1 -1
  41. langflow/frontend/assets/{index-DAJafn16.js → index-BCK-ZyIh.js} +1 -1
  42. langflow/frontend/assets/{index-Cy-ZEfWh.js → index-BEDxAk3N.js} +1 -1
  43. langflow/frontend/assets/{index-DbmqjLy6.js → index-BEKoRwsX.js} +1 -1
  44. langflow/frontend/assets/{index-BcqeL_f4.js → index-BIkqesA-.js} +1 -1
  45. langflow/frontend/assets/{index-7x3wNZ-4.js → index-BJrY2Fiu.js} +1 -1
  46. langflow/frontend/assets/{index-Iamzh9ZT.js → index-BKvKC-12.js} +1 -1
  47. langflow/frontend/assets/{index-COqjpsdy.js → index-BLROcaSz.js} +1 -1
  48. langflow/frontend/assets/{index-BRwkzs92.js → index-BNbWMmAV.js} +1 -1
  49. langflow/frontend/assets/{index-C_UkF-RJ.js → index-BOEf7-ty.js} +1 -1
  50. langflow/frontend/assets/index-BOYTBrh9.js +1 -0
  51. langflow/frontend/assets/{index-DDcpxWU4.js → index-BQB-iDYl.js} +1 -1
  52. langflow/frontend/assets/{index-Crq_yhkG.js → index-BRWNIt9F.js} +1 -1
  53. langflow/frontend/assets/{index-DmaQAn3K.js → index-BVHvIhT5.js} +1 -1
  54. langflow/frontend/assets/{index-Cs_jt3dj.js → index-BVtf6m9S.js} +1 -1
  55. langflow/frontend/assets/{index-T2jJOG85.js → index-BWq9GTzt.js} +1 -1
  56. langflow/frontend/assets/{index-Dz0r9Idb.js → index-BXMhmvTj.js} +1 -1
  57. langflow/frontend/assets/{index-eJwu5YEi.js → index-Ba3RTMXI.js} +1 -1
  58. langflow/frontend/assets/{index-xVx59Op-.js → index-Baka5dKE.js} +1 -1
  59. langflow/frontend/assets/{index-DnusMCK1.js → index-BbsND1Qg.js} +1 -1
  60. langflow/frontend/assets/index-BcgB3rXH.js +1 -0
  61. langflow/frontend/assets/{index-CmiRgF_-.js → index-BdIWbCEL.js} +1 -1
  62. langflow/frontend/assets/{index-BllNr21U.js → index-BdYgKk1d.js} +1 -1
  63. langflow/frontend/assets/{index-BIKbxmIh.js → index-BeNby7qF.js} +1 -1
  64. langflow/frontend/assets/{index-CUe1ivTn.js → index-BejHxU5W.js} +1 -1
  65. langflow/frontend/assets/{index-CVphnxXi.js → index-Bisa4IQF.js} +1 -1
  66. langflow/frontend/assets/{index-Cr2oy5K2.js → index-BjENqyKe.js} +1 -1
  67. langflow/frontend/assets/{index-CEn_71Wk.js → index-BlBl2tvQ.js} +1 -1
  68. langflow/frontend/assets/{index-DOb9c2bf.js → index-BnLT29qW.js} +1 -1
  69. langflow/frontend/assets/{index-BRizlHaN.js → index-BqUeOc7Y.js} +1 -1
  70. langflow/frontend/assets/{index-D7nFs6oq.js → index-BsBWP-Dh.js} +1 -1
  71. langflow/frontend/assets/{index-BlRTHXW5.js → index-BtJ2o21k.js} +1 -1
  72. langflow/frontend/assets/{index-AOX7bbjJ.js → index-BxWXWRmZ.js} +1 -1
  73. langflow/frontend/assets/{index-B20KmxhS.js → index-BxkZkBgQ.js} +1 -1
  74. langflow/frontend/assets/{index-DoFlaGDx.js → index-Bxml6wXu.js} +1 -1
  75. langflow/frontend/assets/{index-B9KRIJFi.js → index-ByFXr9Iq.js} +1 -1
  76. langflow/frontend/assets/{index-CY6LUi4V.js → index-C2Xd7UkR.js} +1 -1
  77. langflow/frontend/assets/index-C76aBV_h.js +1 -0
  78. langflow/frontend/assets/{index-9gkURvG2.js → index-C7V5U9yH.js} +1 -1
  79. langflow/frontend/assets/{index-BDmbsLY2.js → index-C7x9R_Yo.js} +1 -1
  80. langflow/frontend/assets/{index-DI0zAExi.js → index-C8KD3LPb.js} +1 -1
  81. langflow/frontend/assets/{index-DzDNhMMW.js → index-C9N80hP8.js} +1 -1
  82. langflow/frontend/assets/{index-6GWpsedd.js → index-CDFLVFB4.js} +1 -1
  83. langflow/frontend/assets/{index-pkOi9P45.js → index-CF4dtI6S.js} +1 -1
  84. langflow/frontend/assets/{index-CdwjD4IX.js → index-CG7cp0nD.js} +1 -1
  85. langflow/frontend/assets/{index-J0pvFqLk.js → index-CHFO5O4g.js} +1 -1
  86. langflow/frontend/assets/{index-5G402gB8.js → index-CJwYfDBz.js} +1 -1
  87. langflow/frontend/assets/{index-BzCjyHto.js → index-CMGZGIx_.js} +1 -1
  88. langflow/frontend/assets/{index-Bm7a2vMS.js → index-COL0eiWI.js} +1 -1
  89. langflow/frontend/assets/{index-JHCxbvlW.js → index-CWWo2zOA.js} +1 -1
  90. langflow/frontend/assets/{index-C7wDSVVH.js → index-C_1RBTul.js} +1 -1
  91. langflow/frontend/assets/{index-BIjUtp6d.js → index-Ccb5B8zG.js} +1 -1
  92. langflow/frontend/assets/{index-yIh6-LZT.js → index-Cd5zuUUK.js} +1 -1
  93. langflow/frontend/assets/{index-CPIdMJkX.js → index-CkQ-bJ4G.js} +1 -1
  94. langflow/frontend/assets/{index-TRyDa01A.js → index-CkSzjCqM.js} +1 -1
  95. langflow/frontend/assets/{index-CSRizl2S.js → index-CoUlHbtg.js} +1 -1
  96. langflow/frontend/assets/index-Cpgkb0Q3.js +1 -0
  97. langflow/frontend/assets/{index-Cp7Pmn03.js → index-CqDUqHfd.js} +1 -1
  98. langflow/frontend/assets/{index-CGVDXKtN.js → index-Ct9_T9ox.js} +1 -1
  99. langflow/frontend/assets/{index-BwlYjc56.js → index-CvQ0w8Pj.js} +1 -1
  100. langflow/frontend/assets/{index-DkJCCraf.js → index-CwIxqYlT.js} +1 -1
  101. langflow/frontend/assets/{index-Bgd7yLoW.js → index-Cx__T92e.js} +1 -1
  102. langflow/frontend/assets/{index-RveG4dl9.js → index-D-zkHcob.js} +1 -1
  103. langflow/frontend/assets/{index-DVV_etfW.js → index-D0HmkH0H.js} +1 -1
  104. langflow/frontend/assets/{index-CglSqvB5.js → index-D0s9f6Re.js} +1 -1
  105. langflow/frontend/assets/{index-J98sU-1p.js → index-D5PeCofu.js} +1 -1
  106. langflow/frontend/assets/{index-BJIsQS8D.js → index-D87Zw62M.js} +1 -1
  107. langflow/frontend/assets/{index-FYcoJPMP.js → index-D9eflZfP.js} +1 -1
  108. langflow/frontend/assets/{index-DJs6FoYC.js → index-DDNNv4C0.js} +1 -1
  109. langflow/frontend/assets/index-DHlEwAxb.js +1 -0
  110. langflow/frontend/assets/{index-DqDQk0Cu.js → index-DIqSyDVO.js} +1 -1
  111. langflow/frontend/assets/{index-DOI0ceS-.js → index-DK8vNpXK.js} +1 -1
  112. langflow/frontend/assets/{index-D29n5mus.js → index-DKEXZFUO.js} +1 -1
  113. langflow/frontend/assets/{index-dfaj9-hY.js → index-DPX6X_bw.js} +1 -1
  114. langflow/frontend/assets/{index-CgbINWS8.js → index-DS1EgA10.js} +1 -1
  115. langflow/frontend/assets/{index-C69gdJqw.js → index-DS9I4y48.js} +1 -1
  116. langflow/frontend/assets/{index-B2EmwqKj.js → index-DWkMJnbd.js} +1 -1
  117. langflow/frontend/assets/{index-CIYzjH2y.js → index-DWr_zPkx.js} +1 -1
  118. langflow/frontend/assets/{index-D-HTZ68O.js → index-DX7XsAcx.js} +1 -1
  119. langflow/frontend/assets/{index-Cq30cQcP.js → index-DZzbmg3J.js} +1 -1
  120. langflow/frontend/assets/{index-BZCt_UnJ.js → index-DasrI03Y.js} +1 -1
  121. langflow/frontend/assets/index-DdzVmJHE.js +1 -0
  122. langflow/frontend/assets/{index-DmvjdU1N.js → index-DhzEUXfr.js} +1 -1
  123. langflow/frontend/assets/{index-B_ytx_iA.js → index-DpJiH-Rk.js} +1 -1
  124. langflow/frontend/assets/{index-Cyk3aCmP.js → index-DpQKtcXu.js} +1 -1
  125. langflow/frontend/assets/{index-DrvRK4_i.js → index-Dpz3oBf5.js} +1 -1
  126. langflow/frontend/assets/{index-DF0oWRdd.js → index-DqSH4x-R.js} +1 -1
  127. langflow/frontend/assets/{index-DX_InNVT.js → index-DtJyCbzF.js} +1 -1
  128. langflow/frontend/assets/{index-B4AtFbkN.js → index-Du9aJK7m.js} +1 -1
  129. langflow/frontend/assets/{index-qXcoVIRo.js → index-DuAeoC-H.js} +1 -1
  130. langflow/frontend/assets/{index-D7Vx6mgS.js → index-DxIs8VSp.js} +1 -1
  131. langflow/frontend/assets/{index-U7J1YiWE.js → index-DyJDHm2D.js} +1 -1
  132. langflow/frontend/assets/{index-1MEYR1La.js → index-DzeIsaBm.js} +1 -1
  133. langflow/frontend/assets/{index-Cbwk3f-p.js → index-DztLFiip.js} +1 -1
  134. langflow/frontend/assets/{index-C_2G2ZqJ.js → index-GODbXlHC.js} +1 -1
  135. langflow/frontend/assets/{index-2vQdFIK_.js → index-G_U_kPAd.js} +1 -1
  136. langflow/frontend/assets/{index-DS4F_Phe.js → index-IFGgPiye.js} +1 -1
  137. langflow/frontend/assets/{index-5hW8VleF.js → index-LrMzDsq9.js} +1 -1
  138. langflow/frontend/assets/{index-L7FKc9QN.js → index-R7q8cAek.js} +1 -1
  139. langflow/frontend/assets/{index-BRE8A4Q_.js → index-Uq2ij_SS.js} +1 -1
  140. langflow/frontend/assets/{index-Bn4HAVDG.js → index-VHmUHUUU.js} +1 -1
  141. langflow/frontend/assets/{index-VO-pk-Hg.js → index-VZnN0P6C.js} +1 -1
  142. langflow/frontend/assets/{index-Dy7ehgeV.js → index-VcXZzovW.js} +1 -1
  143. langflow/frontend/assets/{index-DNS4La1f.js → index-Ym6gz0T6.js} +1 -1
  144. langflow/frontend/assets/{index-UI2ws3qp.js → index-ci4XHjbJ.js} +176 -176
  145. langflow/frontend/assets/{index-DlMAYATX.js → index-dkS0ek2S.js} +1 -1
  146. langflow/frontend/assets/{index-Dc0p1Oxl.js → index-hOkEW3JP.js} +1 -1
  147. langflow/frontend/assets/{index-KnS52ylc.js → index-js8ceOaP.js} +1 -1
  148. langflow/frontend/assets/{index-DtCsjX48.js → index-lKEJpUsF.js} +1 -1
  149. langflow/frontend/assets/{index-BO4fl1uU.js → index-mBjJYD9q.js} +1 -1
  150. langflow/frontend/assets/{index-C_K6Tof7.js → index-r1LZg-PY.js} +1 -1
  151. langflow/frontend/assets/index-rcdQpNcU.js +1 -0
  152. langflow/frontend/assets/{index-_3qag0I4.js → index-sS6XLk3j.js} +1 -1
  153. langflow/frontend/assets/{index-C6P0vvSP.js → index-tOy_uloT.js} +1 -1
  154. langflow/frontend/assets/lazyIconImports-Bh1TFfvH.js +2 -0
  155. langflow/frontend/assets/{use-post-add-user-Bt6vZvvT.js → use-post-add-user-HN0rRnhv.js} +1 -1
  156. langflow/frontend/index.html +1 -1
  157. langflow/initial_setup/starter_projects/Knowledge Ingestion.json +2 -2
  158. langflow/initial_setup/starter_projects/News Aggregator.json +19 -2
  159. langflow/initial_setup/starter_projects/Nvidia Remix.json +19 -2
  160. langflow/interface/initialize/loading.py +3 -1
  161. langflow/main.py +19 -2
  162. langflow/services/database/models/file/model.py +4 -2
  163. langflow/services/database/service.py +3 -1
  164. langflow/services/telemetry/schema.py +7 -0
  165. langflow/services/telemetry/service.py +25 -0
  166. langflow/services/tracing/service.py +14 -4
  167. {langflow_base_nightly-0.5.0.dev33.dist-info → langflow_base_nightly-0.5.0.dev35.dist-info}/METADATA +1 -1
  168. {langflow_base_nightly-0.5.0.dev33.dist-info → langflow_base_nightly-0.5.0.dev35.dist-info}/RECORD +170 -152
  169. langflow/frontend/assets/lazyIconImports-kvf_Kak2.js +0 -2
  170. {langflow_base_nightly-0.5.0.dev33.dist-info → langflow_base_nightly-0.5.0.dev35.dist-info}/WHEEL +0 -0
  171. {langflow_base_nightly-0.5.0.dev33.dist-info → langflow_base_nightly-0.5.0.dev35.dist-info}/entry_points.txt +0 -0
@@ -1,787 +1,11 @@
1
- from typing import Any
2
-
3
- from composio import Action
4
-
5
1
  from langflow.base.composio.composio_base import ComposioBaseComponent
6
- from langflow.inputs import (
7
- BoolInput,
8
- IntInput,
9
- MessageTextInput,
10
- )
11
- from langflow.logging import logger
12
2
 
13
3
 
14
4
  class ComposioGoogleCalendarAPIComponent(ComposioBaseComponent):
15
- """Google Calendar API component for interacting with Google Calendar services."""
16
-
17
5
  display_name: str = "Google Calendar"
18
- description: str = "Google Calendar API"
19
6
  icon = "Googlecalendar"
20
7
  documentation: str = "https://docs.composio.dev"
21
8
  app_name = "googlecalendar"
22
9
 
23
- _actions_data: dict = {
24
- "GOOGLECALENDAR_UPDATE_EVENT": {
25
- "display_name": "Update Google Event",
26
- "action_fields": [
27
- "GOOGLECALENDAR_UPDATE_EVENT_description",
28
- "GOOGLECALENDAR_UPDATE_EVENT_eventType",
29
- "GOOGLECALENDAR_UPDATE_EVENT_create_meeting_room",
30
- "GOOGLECALENDAR_UPDATE_EVENT_guestsCanSeeOtherGuests",
31
- "GOOGLECALENDAR_UPDATE_EVENT_guestsCanInviteOthers",
32
- "GOOGLECALENDAR_UPDATE_EVENT_location",
33
- "GOOGLECALENDAR_UPDATE_EVENT_summary",
34
- "GOOGLECALENDAR_UPDATE_EVENT_transparency",
35
- "GOOGLECALENDAR_UPDATE_EVENT_visibility",
36
- "GOOGLECALENDAR_UPDATE_EVENT_timezone",
37
- "GOOGLECALENDAR_UPDATE_EVENT_recurrence",
38
- "GOOGLECALENDAR_UPDATE_EVENT_guests_can_modify",
39
- "GOOGLECALENDAR_UPDATE_EVENT_attendees",
40
- "GOOGLECALENDAR_UPDATE_EVENT_send_updates",
41
- "GOOGLECALENDAR_UPDATE_EVENT_start_datetime",
42
- "GOOGLECALENDAR_UPDATE_EVENT_event_duration_hour",
43
- "GOOGLECALENDAR_UPDATE_EVENT_event_duration_minutes",
44
- "GOOGLECALENDAR_UPDATE_EVENT_calendar_id",
45
- "GOOGLECALENDAR_UPDATE_EVENT_event_id",
46
- ],
47
- },
48
- "GOOGLECALENDAR_REMOVE_ATTENDEE": {
49
- "display_name": "Remove Attendee From Event",
50
- "action_fields": [
51
- "GOOGLECALENDAR_REMOVE_ATTENDEE_calendar_id",
52
- "GOOGLECALENDAR_REMOVE_ATTENDEE_event_id",
53
- "GOOGLECALENDAR_REMOVE_ATTENDEE_attendee_email",
54
- ],
55
- },
56
- "GOOGLECALENDAR_GET_CURRENT_DATE_TIME": {
57
- "display_name": "Get Current Date And Time",
58
- "action_fields": ["GOOGLECALENDAR_GET_CURRENT_DATE_TIME_timezone"],
59
- },
60
- "GOOGLECALENDAR_QUICK_ADD": {
61
- "display_name": "Quick Add Event",
62
- "action_fields": [
63
- "GOOGLECALENDAR_QUICK_ADD_calendar_id",
64
- "GOOGLECALENDAR_QUICK_ADD_text",
65
- "GOOGLECALENDAR_QUICK_ADD_send_updates",
66
- ],
67
- },
68
- "GOOGLECALENDAR_LIST_CALENDARS": {
69
- "display_name": "List Google Calendars",
70
- "action_fields": [
71
- "GOOGLECALENDAR_LIST_CALENDARS_max_results",
72
- "GOOGLECALENDAR_LIST_CALENDARS_min_access_role",
73
- "GOOGLECALENDAR_LIST_CALENDARS_page_token",
74
- "GOOGLECALENDAR_LIST_CALENDARS_show_deleted",
75
- "GOOGLECALENDAR_LIST_CALENDARS_show_hidden",
76
- "GOOGLECALENDAR_LIST_CALENDARS_sync_token",
77
- ],
78
- },
79
- "GOOGLECALENDAR_FIND_EVENT": {
80
- "display_name": "Find Event",
81
- "action_fields": [
82
- "GOOGLECALENDAR_FIND_EVENT_calendar_id",
83
- "GOOGLECALENDAR_FIND_EVENT_query",
84
- "GOOGLECALENDAR_FIND_EVENT_max_results",
85
- "GOOGLECALENDAR_FIND_EVENT_order_by",
86
- "GOOGLECALENDAR_FIND_EVENT_show_deleted",
87
- "GOOGLECALENDAR_FIND_EVENT_single_events",
88
- "GOOGLECALENDAR_FIND_EVENT_timeMax",
89
- "GOOGLECALENDAR_FIND_EVENT_timeMin",
90
- "GOOGLECALENDAR_FIND_EVENT_updated_min",
91
- "GOOGLECALENDAR_FIND_EVENT_event_types",
92
- "GOOGLECALENDAR_FIND_EVENT_page_token",
93
- ],
94
- },
95
- "GOOGLECALENDAR_CREATE_EVENT": {
96
- "display_name": "Create Event",
97
- "action_fields": [
98
- "GOOGLECALENDAR_CREATE_EVENT_description",
99
- "GOOGLECALENDAR_CREATE_EVENT_eventType",
100
- "GOOGLECALENDAR_CREATE_EVENT_create_meeting_room",
101
- "GOOGLECALENDAR_CREATE_EVENT_guestsCanSeeOtherGuests",
102
- "GOOGLECALENDAR_CREATE_EVENT_guestsCanInviteOthers",
103
- "GOOGLECALENDAR_CREATE_EVENT_location",
104
- "GOOGLECALENDAR_CREATE_EVENT_summary",
105
- "GOOGLECALENDAR_CREATE_EVENT_transparency",
106
- "GOOGLECALENDAR_CREATE_EVENT_visibility",
107
- "GOOGLECALENDAR_CREATE_EVENT_timezone",
108
- "GOOGLECALENDAR_CREATE_EVENT_recurrence",
109
- "GOOGLECALENDAR_CREATE_EVENT_guests_can_modify",
110
- "GOOGLECALENDAR_CREATE_EVENT_attendees",
111
- "GOOGLECALENDAR_CREATE_EVENT_send_updates",
112
- "GOOGLECALENDAR_CREATE_EVENT_start_datetime",
113
- "GOOGLECALENDAR_CREATE_EVENT_event_duration_hour",
114
- "GOOGLECALENDAR_CREATE_EVENT_event_duration_minutes",
115
- "GOOGLECALENDAR_CREATE_EVENT_calendar_id",
116
- ],
117
- },
118
- "GOOGLECALENDAR_FIND_FREE_SLOTS": {
119
- "display_name": "Find Free Slots",
120
- "action_fields": [
121
- "GOOGLECALENDAR_FIND_FREE_SLOTS_time_min",
122
- "GOOGLECALENDAR_FIND_FREE_SLOTS_time_max",
123
- "GOOGLECALENDAR_FIND_FREE_SLOTS_timezone",
124
- "GOOGLECALENDAR_FIND_FREE_SLOTS_group_expansion_max",
125
- "GOOGLECALENDAR_FIND_FREE_SLOTS_calendar_expansion_max",
126
- "GOOGLECALENDAR_FIND_FREE_SLOTS_items",
127
- ],
128
- },
129
- "GOOGLECALENDAR_PATCH_CALENDAR": {
130
- "display_name": "Patch Calendar",
131
- "action_fields": [
132
- "GOOGLECALENDAR_PATCH_CALENDAR_calendar_id",
133
- "GOOGLECALENDAR_PATCH_CALENDAR_description",
134
- "GOOGLECALENDAR_PATCH_CALENDAR_location",
135
- "GOOGLECALENDAR_PATCH_CALENDAR_summary",
136
- "GOOGLECALENDAR_PATCH_CALENDAR_timezone",
137
- ],
138
- },
139
- "GOOGLECALENDAR_GET_CALENDAR": {
140
- "display_name": "Fetch Google Calendar",
141
- "action_fields": ["GOOGLECALENDAR_GET_CALENDAR_calendar_id"],
142
- },
143
- "GOOGLECALENDAR_DELETE_EVENT": {
144
- "display_name": "Delete Event",
145
- "action_fields": ["GOOGLECALENDAR_DELETE_EVENT_calendar_id", "GOOGLECALENDAR_DELETE_EVENT_event_id"],
146
- },
147
- "GOOGLECALENDAR_DUPLICATE_CALENDAR": {
148
- "display_name": "Duplicate Calendar",
149
- "action_fields": ["GOOGLECALENDAR_DUPLICATE_CALENDAR_summary"],
150
- },
151
- }
152
-
153
- _list_variables = {
154
- "GOOGLECALENDAR_FIND_EVENT_event_types",
155
- "GOOGLECALENDAR_CREATE_EVENT_recurrence",
156
- "GOOGLECALENDAR_CREATE_EVENT_attendees",
157
- "GOOGLECALENDAR_FIND_FREE_SLOTS_items",
158
- "GOOGLECALENDAR_UPDATE_EVENT_recurrence",
159
- "GOOGLECALENDAR_UPDATE_EVENT_attendees",
160
- }
161
-
162
- _all_fields = {field for action_data in _actions_data.values() for field in action_data["action_fields"]}
163
- _bool_variables = {
164
- "GOOGLECALENDAR_LIST_CALENDARS_show_deleted",
165
- "GOOGLECALENDAR_LIST_CALENDARS_show_hidden",
166
- "GOOGLECALENDAR_FIND_EVENT_show_deleted",
167
- "GOOGLECALENDAR_FIND_EVENT_single_events",
168
- "GOOGLECALENDAR_CREATE_EVENT_create_meeting_room",
169
- "GOOGLECALENDAR_CREATE_EVENT_guestsCanSeeOtherGuests",
170
- "GOOGLECALENDAR_CREATE_EVENT_guestsCanInviteOthers",
171
- "GOOGLECALENDAR_CREATE_EVENT_guests_can_modify",
172
- "GOOGLECALENDAR_CREATE_EVENT_send_updates",
173
- "GOOGLECALENDAR_UPDATE_EVENT_create_meeting_room",
174
- "GOOGLECALENDAR_UPDATE_EVENT_guestsCanSeeOtherGuests",
175
- "GOOGLECALENDAR_UPDATE_EVENT_guestsCanInviteOthers",
176
- "GOOGLECALENDAR_UPDATE_EVENT_guests_can_modify",
177
- "GOOGLECALENDAR_UPDATE_EVENT_send_updates",
178
- }
179
-
180
- inputs = [
181
- *ComposioBaseComponent._base_inputs,
182
- IntInput(
183
- name="GOOGLECALENDAR_LIST_CALENDARS_max_results",
184
- display_name="Max Results",
185
- info="Maximum number of entries returned on one result page. The page size can never be larger than 250 entries.", # noqa: E501
186
- show=False,
187
- value=10,
188
- ),
189
- MessageTextInput(
190
- name="GOOGLECALENDAR_LIST_CALENDARS_min_access_role",
191
- display_name="Min Access Role",
192
- info="The minimum access role for the user in the returned entries. Accepted values are 'owner' & 'reader'",
193
- show=False,
194
- ),
195
- MessageTextInput(
196
- name="GOOGLECALENDAR_LIST_CALENDARS_page_token",
197
- display_name="Page Token",
198
- info="Token specifying which result page to return.",
199
- show=False,
200
- advanced=True,
201
- ),
202
- BoolInput(
203
- name="GOOGLECALENDAR_LIST_CALENDARS_show_deleted",
204
- display_name="Show Deleted",
205
- info="Whether to include deleted calendar list entries in the result.",
206
- show=False,
207
- value=False,
208
- advanced=True,
209
- ),
210
- BoolInput(
211
- name="GOOGLECALENDAR_LIST_CALENDARS_show_hidden",
212
- display_name="Show Hidden",
213
- info="Whether to show hidden entries.",
214
- show=False,
215
- value=False,
216
- advanced=True,
217
- ),
218
- MessageTextInput(
219
- name="GOOGLECALENDAR_LIST_CALENDARS_sync_token",
220
- display_name="Sync Token",
221
- info="Token obtained from the nextSyncToken field returned on the last page of results from the previous list request.", # noqa: E501
222
- show=False,
223
- advanced=True,
224
- ),
225
- MessageTextInput(
226
- name="GOOGLECALENDAR_FIND_EVENT_calendar_id",
227
- display_name="Calendar Id",
228
- info="Identifier of the Google Calendar. Use 'primary' for the currently logged in user's primary calendar.", # noqa: E501
229
- show=False,
230
- value="primary",
231
- ),
232
- MessageTextInput(
233
- name="GOOGLECALENDAR_FIND_EVENT_query",
234
- display_name="Query",
235
- info="Search term to find events that match these terms in the event's summary, description, location, attendee's displayName, attendee's email, organizer's displayName, organizer's email, etc if needed.", # noqa: E501
236
- show=False,
237
- ),
238
- IntInput(
239
- name="GOOGLECALENDAR_FIND_EVENT_max_results",
240
- display_name="Max Results",
241
- info="Maximum number of events returned on one result page. The page size can never be larger than 2500 events. The default value is 10.", # noqa: E501
242
- show=False,
243
- value=10,
244
- ),
245
- MessageTextInput(
246
- name="GOOGLECALENDAR_FIND_EVENT_order_by",
247
- display_name="Order By",
248
- info="The order of the events returned in the result. Acceptable values are 'startTime' and 'updated'.",
249
- show=False,
250
- advanced=True,
251
- ),
252
- BoolInput(
253
- name="GOOGLECALENDAR_FIND_EVENT_show_deleted",
254
- display_name="Show Deleted",
255
- info="Whether to include deleted events (with status equals 'cancelled') in the result.",
256
- show=False,
257
- advanced=True,
258
- ),
259
- BoolInput(
260
- name="GOOGLECALENDAR_FIND_EVENT_single_events",
261
- display_name="Single Events",
262
- info="Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves.", # noqa: E501
263
- show=False,
264
- value=True,
265
- advanced=True,
266
- ),
267
- MessageTextInput(
268
- name="GOOGLECALENDAR_FIND_EVENT_timeMax",
269
- display_name="Timemax",
270
- info="Upper bound (exclusive) for an event's start time to filter by. Accepts multiple formats:, 1. ISO format with timezone (e.g., 2024-12-06T13:00:00Z), 2. Comma-separated format (e.g., 2024,12,06,13,00,00), 3. Simple datetime format (e.g., 2024-12-06 13:00:00)", # noqa: E501
271
- show=False,
272
- advanced=True,
273
- ),
274
- MessageTextInput(
275
- name="GOOGLECALENDAR_FIND_EVENT_timeMin",
276
- display_name="Timemin",
277
- info="Lower bound (exclusive) for an event's end time to filter by. Accepts multiple formats:, 1. ISO format with timezone (e.g., 2024-12-06T13:00:00Z), 2. Comma-separated format (e.g., 2024,12,06,13,00,00), 3. Simple datetime format (e.g., 2024-12-06 13:00:00)", # noqa: E501
278
- show=False,
279
- advanced=True,
280
- ),
281
- MessageTextInput(
282
- name="GOOGLECALENDAR_FIND_EVENT_updated_min",
283
- display_name="Updated Min",
284
- info="Lower bound for an event's last modification time to filter by. Accepts multiple formats:, 1. ISO format with timezone (e.g., 2024-12-06T13:00:00Z), 2. Comma-separated format (e.g., 2024,12,06,13,00,00), 3. Simple datetime format (e.g., 2024-12-06 13:00:00)", # noqa: E501
285
- show=False,
286
- advanced=True,
287
- ),
288
- MessageTextInput(
289
- name="GOOGLECALENDAR_FIND_EVENT_event_types",
290
- display_name="Event Types",
291
- info="List of event types to return. Possible values are: default, outOfOffice, focusTime, workingLocation.", # noqa: E501
292
- show=False,
293
- advanced=True,
294
- ),
295
- MessageTextInput(
296
- name="GOOGLECALENDAR_FIND_EVENT_page_token",
297
- display_name="Page Token",
298
- info="Token specifying which result page to return. Optional.",
299
- show=False,
300
- advanced=True,
301
- ),
302
- MessageTextInput(
303
- name="GOOGLECALENDAR_DUPLICATE_CALENDAR_summary",
304
- display_name="Summary/Title",
305
- info="Title of the calendar to be duplicated.",
306
- show=False,
307
- value="",
308
- ),
309
- MessageTextInput(
310
- name="GOOGLECALENDAR_REMOVE_ATTENDEE_calendar_id",
311
- display_name="Calendar Id",
312
- info="ID of the Google Calendar",
313
- show=False,
314
- value="primary",
315
- ),
316
- MessageTextInput(
317
- name="GOOGLECALENDAR_REMOVE_ATTENDEE_event_id",
318
- display_name="Event Id",
319
- info="ID of the event",
320
- show=False,
321
- required=True,
322
- ),
323
- MessageTextInput(
324
- name="GOOGLECALENDAR_REMOVE_ATTENDEE_attendee_email",
325
- display_name="Attendee Email",
326
- info="Email address of the attendee to be removed",
327
- show=False,
328
- required=True,
329
- ),
330
- MessageTextInput(
331
- name="GOOGLECALENDAR_GET_CALENDAR_calendar_id",
332
- display_name="Calendar Id",
333
- info="The ID of the Google Calendar that needs to be fetched. Default is 'primary'.",
334
- show=False,
335
- value="primary",
336
- ),
337
- MessageTextInput(
338
- name="GOOGLECALENDAR_CREATE_EVENT_description",
339
- display_name="Description",
340
- info="Description of the event. Can contain HTML. Optional.",
341
- show=False,
342
- advanced=True,
343
- ),
344
- MessageTextInput(
345
- name="GOOGLECALENDAR_CREATE_EVENT_eventType",
346
- display_name="Event Type",
347
- info="Type of the event, immutable post-creation. Currently, only 'default'",
348
- show=False,
349
- value="default",
350
- advanced=True,
351
- ),
352
- BoolInput(
353
- name="GOOGLECALENDAR_CREATE_EVENT_create_meeting_room",
354
- display_name="Create Meeting Room",
355
- info="If true, a Google Meet link is created and added to the event.",
356
- show=False,
357
- advanced=True,
358
- ),
359
- BoolInput(
360
- name="GOOGLECALENDAR_CREATE_EVENT_guestsCanSeeOtherGuests",
361
- display_name="Guests Can See Other Guests",
362
- info="Whether attendees other than the organizer can see who the event's attendees are.",
363
- show=False,
364
- advanced=True,
365
- ),
366
- BoolInput(
367
- name="GOOGLECALENDAR_CREATE_EVENT_guestsCanInviteOthers",
368
- display_name="Guests Can Invite Others",
369
- info="Whether attendees other than the organizer can invite others to the event.",
370
- show=False,
371
- advanced=True,
372
- ),
373
- MessageTextInput(
374
- name="GOOGLECALENDAR_CREATE_EVENT_location",
375
- display_name="Location",
376
- info="Geographic location of the event as free-form text.",
377
- show=False,
378
- advanced=True,
379
- ),
380
- MessageTextInput(
381
- name="GOOGLECALENDAR_CREATE_EVENT_summary",
382
- display_name="Summary/Title",
383
- info="Summary (title) of the event.",
384
- show=False,
385
- ),
386
- MessageTextInput(
387
- name="GOOGLECALENDAR_CREATE_EVENT_transparency",
388
- display_name="Event Transparency",
389
- info="'opaque' (busy) or 'transparent' (available).",
390
- show=False,
391
- value="opaque",
392
- advanced=True,
393
- ),
394
- MessageTextInput(
395
- name="GOOGLECALENDAR_CREATE_EVENT_visibility",
396
- display_name="Event Visibility",
397
- info="Event visibility: 'default', 'public', 'private', or 'confidential'.",
398
- show=False,
399
- value="default",
400
- advanced=True,
401
- ),
402
- MessageTextInput(
403
- name="GOOGLECALENDAR_CREATE_EVENT_timezone",
404
- display_name="Timezone",
405
- info="IANA timezone name (e.g., 'America/New_York'). Required if datetime is naive. If datetime includes timezone info (Z or offset), this field is optional and defaults to UTC.", # noqa: E501
406
- show=False,
407
- ),
408
- MessageTextInput(
409
- name="GOOGLECALENDAR_CREATE_EVENT_recurrence",
410
- display_name="Recurrence",
411
- info="List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events.",
412
- show=False,
413
- advanced=True,
414
- ),
415
- BoolInput(
416
- name="GOOGLECALENDAR_CREATE_EVENT_guests_can_modify",
417
- display_name="Guests Can Modify",
418
- info="If True, guests can modify the event.",
419
- show=False,
420
- value=False,
421
- advanced=True,
422
- ),
423
- MessageTextInput(
424
- name="GOOGLECALENDAR_CREATE_EVENT_attendees",
425
- display_name="Attendees",
426
- info="List of attendee emails (strings).",
427
- show=False,
428
- ),
429
- BoolInput(
430
- name="GOOGLECALENDAR_CREATE_EVENT_send_updates",
431
- display_name="Send Updates",
432
- info="Defaults to True. Whether to send updates to the attendees.",
433
- show=False,
434
- advanced=True,
435
- ),
436
- MessageTextInput(
437
- name="GOOGLECALENDAR_CREATE_EVENT_start_datetime",
438
- display_name="Start Datetime",
439
- info="Naive date/time (YYYY-MM-DDTHH:MM:SS) with NO offsets or Z. e.g. '2025-01-16T13:00:00'",
440
- show=False,
441
- required=True,
442
- ),
443
- IntInput(
444
- name="GOOGLECALENDAR_CREATE_EVENT_event_duration_hour",
445
- display_name="Event Duration Hour",
446
- info="Number of hours (0-24).",
447
- show=False,
448
- value=0,
449
- advanced=True,
450
- ),
451
- IntInput(
452
- name="GOOGLECALENDAR_CREATE_EVENT_event_duration_minutes",
453
- display_name="Event Duration Minutes",
454
- info="Number of minutes (0-59).",
455
- show=False,
456
- value=30,
457
- advanced=True,
458
- ),
459
- MessageTextInput(
460
- name="GOOGLECALENDAR_CREATE_EVENT_calendar_id",
461
- display_name="Calendar Id",
462
- info="The ID of the Google Calendar. `primary` for interacting with the primary calendar.",
463
- show=False,
464
- value="primary",
465
- advanced=True,
466
- ),
467
- MessageTextInput(
468
- name="GOOGLECALENDAR_DELETE_EVENT_calendar_id",
469
- display_name="Calendar Id",
470
- info="ID of the Google Calendar",
471
- show=False,
472
- value="primary",
473
- ),
474
- MessageTextInput(
475
- name="GOOGLECALENDAR_DELETE_EVENT_event_id",
476
- display_name="Event Id",
477
- info="ID of the event to be deleted",
478
- show=False,
479
- required=True,
480
- ),
481
- MessageTextInput(
482
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_time_min",
483
- display_name="Time Min",
484
- info="The start datetime of the interval for the query. Supports multiple formats:, 1. ISO format with timezone (e.g., 2024-12-06T13:00:00Z), 2. Comma-separated format (e.g., 2024,12,06,13,00,00), 3. Simple datetime format (e.g., 2024-12-06 13:00:00)", # noqa: E501
485
- show=False,
486
- advanced=True,
487
- ),
488
- MessageTextInput(
489
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_time_max",
490
- display_name="Time Max",
491
- info="The end datetime of the interval for the query. Supports multiple formats:, 1. ISO format with timezone (e.g., 2024-12-06T13:00:00Z), 2. Comma-separated format (e.g., 2024,12,06,13,00,00), 3. Simple datetime format (e.g., 2024-12-06 13:00:00)", # noqa: E501
492
- show=False,
493
- advanced=True,
494
- ),
495
- MessageTextInput(
496
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_timezone",
497
- display_name="Timezone",
498
- info="Time zone used in the response. Optional. The default is UTC.",
499
- show=False,
500
- value="UTC",
501
- advanced=True,
502
- ),
503
- IntInput(
504
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_group_expansion_max",
505
- display_name="Group Expansion Max",
506
- info="Maximal number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.", # noqa: E501
507
- show=False,
508
- value=100,
509
- advanced=True,
510
- ),
511
- IntInput(
512
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_calendar_expansion_max",
513
- display_name="Calendar Expansion Max",
514
- info="Maximal number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.", # noqa: E501
515
- show=False,
516
- value=50,
517
- advanced=True,
518
- ),
519
- MessageTextInput(
520
- name="GOOGLECALENDAR_FIND_FREE_SLOTS_items",
521
- display_name="Items",
522
- info="List of calendars ids for which to fetch",
523
- show=False,
524
- ),
525
- MessageTextInput(
526
- name="GOOGLECALENDAR_QUICK_ADD_calendar_id",
527
- display_name="Calendar Id",
528
- info="Calendar identifier. To list calendars to retrieve calendar IDs use relevant tools. To access the primary calendar of the currently logged in user, use the 'primary' keyword.", # noqa: E501
529
- show=False,
530
- value="primary",
531
- ),
532
- MessageTextInput(
533
- name="GOOGLECALENDAR_QUICK_ADD_text",
534
- display_name="Text",
535
- info="The text describing the event to be created.",
536
- show=False,
537
- value="",
538
- ),
539
- MessageTextInput(
540
- name="GOOGLECALENDAR_QUICK_ADD_send_updates",
541
- display_name="Send Updates",
542
- info="Guests who should receive notifications about the creation of the new event. Accepted fields include 'all', 'none', 'externalOnly'", # noqa: E501
543
- show=False,
544
- value="none",
545
- advanced=True,
546
- ),
547
- MessageTextInput(
548
- name="GOOGLECALENDAR_PATCH_CALENDAR_calendar_id",
549
- display_name="Calendar Id",
550
- info="The ID of the Google Calendar that needs to be updated.",
551
- show=False,
552
- required=True,
553
- ),
554
- MessageTextInput(
555
- name="GOOGLECALENDAR_PATCH_CALENDAR_description",
556
- display_name="Description",
557
- info="Description of the calendar. Optional.",
558
- show=False,
559
- advanced=True,
560
- ),
561
- MessageTextInput(
562
- name="GOOGLECALENDAR_PATCH_CALENDAR_location",
563
- display_name="Location",
564
- info="Geographic location of the calendar as free-form text.",
565
- show=False,
566
- advanced=True,
567
- ),
568
- MessageTextInput(
569
- name="GOOGLECALENDAR_PATCH_CALENDAR_summary",
570
- display_name="Title/Summary",
571
- info="Title of the calendar. This field is required and cannot be left blank as per the Google Calendar API requirements.", # noqa: E501
572
- show=False,
573
- required=True,
574
- ),
575
- MessageTextInput(
576
- name="GOOGLECALENDAR_PATCH_CALENDAR_timezone",
577
- display_name="Timezone",
578
- info="The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. 'Europe/Zurich').",
579
- show=False,
580
- advanced=True,
581
- ),
582
- IntInput(
583
- name="GOOGLECALENDAR_GET_CURRENT_DATE_TIME_timezone",
584
- display_name="Timezone",
585
- info="The timezone offset from UTC to retrieve current date and time, like for location of UTC+6, you give 6, for UTC -9, your give -9.", # noqa: E501
586
- show=False,
587
- value=0,
588
- advanced=True,
589
- ),
590
- MessageTextInput(
591
- name="GOOGLECALENDAR_UPDATE_EVENT_description",
592
- display_name="Description",
593
- info="Description of the event. Can contain HTML. Optional.",
594
- show=False,
595
- advanced=True,
596
- ),
597
- MessageTextInput(
598
- name="GOOGLECALENDAR_UPDATE_EVENT_eventType",
599
- display_name="EventType",
600
- info="Type of the event, immutable post-creation. Currently, only 'default' and 'workingLocation' can be created.", # noqa: E501
601
- show=False,
602
- value="default",
603
- advanced=True,
604
- ),
605
- BoolInput(
606
- name="GOOGLECALENDAR_UPDATE_EVENT_create_meeting_room",
607
- display_name="Create Meeting Room",
608
- info="If true, a Google Meet link is created and added to the event.",
609
- show=False,
610
- advanced=True,
611
- ),
612
- BoolInput(
613
- name="GOOGLECALENDAR_UPDATE_EVENT_guestsCanSeeOtherGuests",
614
- display_name="Guests Can See Other Guests",
615
- info="Whether attendees other than the organizer can see who the event's attendees are.",
616
- show=False,
617
- advanced=True,
618
- ),
619
- BoolInput(
620
- name="GOOGLECALENDAR_UPDATE_EVENT_guestsCanInviteOthers",
621
- display_name="Guests Can Invite Others",
622
- info="Whether attendees other than the organizer can invite others to the event.",
623
- show=False,
624
- advanced=True,
625
- ),
626
- MessageTextInput(
627
- name="GOOGLECALENDAR_UPDATE_EVENT_location",
628
- display_name="Location",
629
- info="Geographic location of the event as free-form text.",
630
- show=False,
631
- advanced=True,
632
- ),
633
- MessageTextInput(
634
- name="GOOGLECALENDAR_UPDATE_EVENT_summary",
635
- display_name="Summary/Title",
636
- info="Summary (title) of the event.",
637
- show=False,
638
- ),
639
- MessageTextInput(
640
- name="GOOGLECALENDAR_UPDATE_EVENT_transparency",
641
- display_name="Event Transparency",
642
- info="'opaque' (busy) or 'transparent' (available).",
643
- show=False,
644
- value="opaque",
645
- advanced=True,
646
- ),
647
- MessageTextInput(
648
- name="GOOGLECALENDAR_UPDATE_EVENT_visibility",
649
- display_name="Event Visibility",
650
- info="Event visibility: 'default', 'public', 'private', or 'confidential'.",
651
- show=False,
652
- value="default",
653
- advanced=True,
654
- ),
655
- MessageTextInput(
656
- name="GOOGLECALENDAR_UPDATE_EVENT_timezone",
657
- display_name="Timezone",
658
- info="IANA timezone name (e.g., 'America/New_York'). Required if datetime is naive. If datetime includes timezone info (Z or offset), this field is optional and defaults to UTC.", # noqa: E501
659
- show=False,
660
- advanced=True,
661
- ),
662
- MessageTextInput(
663
- name="GOOGLECALENDAR_UPDATE_EVENT_recurrence",
664
- display_name="Recurrence",
665
- info="List of RRULE, EXRULE, RDATE, EXDATE lines for recurring events.",
666
- show=False,
667
- advanced=True,
668
- ),
669
- BoolInput(
670
- name="GOOGLECALENDAR_UPDATE_EVENT_guests_can_modify",
671
- display_name="Guests Can Modify",
672
- info="If True, guests can modify the event.",
673
- show=False,
674
- value=False,
675
- advanced=True,
676
- ),
677
- MessageTextInput(
678
- name="GOOGLECALENDAR_UPDATE_EVENT_attendees",
679
- display_name="Attendees",
680
- info="List of attendee emails (strings).",
681
- show=False,
682
- ),
683
- BoolInput(
684
- name="GOOGLECALENDAR_UPDATE_EVENT_send_updates",
685
- display_name="Send Updates",
686
- info="Defaults to True. Whether to send updates to the attendees.",
687
- show=False,
688
- advanced=True,
689
- ),
690
- MessageTextInput(
691
- name="GOOGLECALENDAR_UPDATE_EVENT_start_datetime",
692
- display_name="Start Datetime",
693
- info="Naive date/time (YYYY-MM-DDTHH:MM:SS) with NO offsets or Z. e.g. '2025-01-16T13:00:00'",
694
- show=False,
695
- required=True,
696
- ),
697
- IntInput(
698
- name="GOOGLECALENDAR_UPDATE_EVENT_event_duration_hour",
699
- display_name="Event Duration Hour",
700
- info="Number of hours (0-24).",
701
- show=False,
702
- value=0,
703
- advanced=True,
704
- ),
705
- IntInput(
706
- name="GOOGLECALENDAR_UPDATE_EVENT_event_duration_minutes",
707
- display_name="Event Duration Minutes",
708
- info="Number of minutes (0-59).",
709
- show=False,
710
- value=30,
711
- advanced=True,
712
- ),
713
- MessageTextInput(
714
- name="GOOGLECALENDAR_UPDATE_EVENT_calendar_id",
715
- display_name="Calendar Id",
716
- info="ID of the Google Calendar",
717
- show=False,
718
- value="primary",
719
- ),
720
- MessageTextInput(
721
- name="GOOGLECALENDAR_UPDATE_EVENT_event_id",
722
- display_name="Event Id",
723
- info="ID of the event to be updated",
724
- show=False,
725
- required=True,
726
- ),
727
- ]
728
-
729
- def execute_action(self):
730
- """Execute action and return response as Message."""
731
- toolset = self._build_wrapper()
732
-
733
- try:
734
- self._build_action_maps()
735
- # Get the display name from the action list
736
- display_name = self.action[0]["name"] if isinstance(self.action, list) and self.action else self.action
737
- # Use the display_to_key_map to get the action key
738
- action_key = self._display_to_key_map.get(display_name)
739
- if not action_key:
740
- msg = f"Invalid action: {display_name}"
741
- raise ValueError(msg)
742
-
743
- enum_name = getattr(Action, action_key)
744
- params = {}
745
- if action_key in self._actions_data:
746
- for field in self._actions_data[action_key]["action_fields"]:
747
- value = getattr(self, field)
748
-
749
- if value is None or value == "":
750
- continue
751
-
752
- if field in self._list_variables and value:
753
- value = [item.strip() for item in value.split(",")]
754
-
755
- if field in self._bool_variables:
756
- value = bool(value)
757
-
758
- param_name = field.replace(action_key + "_", "")
759
- params[param_name] = value
760
-
761
- result = toolset.execute_action(
762
- action=enum_name,
763
- params=params,
764
- )
765
- if not result.get("successful"):
766
- message_str = result.get("error", {})
767
- return {"error": message_str}
768
-
769
- result_data = result.get("data", [])
770
- if (
771
- len(result_data) != 1
772
- and not self._actions_data.get(action_key, {}).get("result_field")
773
- and self._actions_data.get(action_key, {}).get("get_result_field")
774
- ):
775
- msg = f"Expected a dict with a single key, got {len(result_data)} keys: {result_data.keys()}"
776
- raise ValueError(msg)
777
- if action_key == "GOOGLECALENDAR_GET_CURRENT_DATE_TIME":
778
- return result_data
779
- return result_data[next(iter(result_data))]
780
- except Exception as e:
781
- logger.error(f"Error executing action: {e}")
782
- display_name = self.action[0]["name"] if isinstance(self.action, list) and self.action else str(self.action)
783
- msg = f"Failed to execute {display_name}: {e!s}"
784
- raise ValueError(msg) from e
785
-
786
- def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None) -> dict:
787
- return super().update_build_config(build_config, field_value, field_name)
10
+ def set_default_tools(self):
11
+ """Set the default tools for Google Calendar component."""