53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
from pocketflow import Flow
|
|
from nodes import CreateCalendarEventNode, ListCalendarEventsNode, ListCalendarsNode
|
|
from datetime import datetime, timedelta
|
|
|
|
def create_calendar_flow():
|
|
"""Creates a flow to manage calendar events."""
|
|
# Create nodes
|
|
create_event_node = CreateCalendarEventNode()
|
|
list_events_node = ListCalendarEventsNode()
|
|
|
|
# Connect nodes
|
|
create_event_node - "success" >> list_events_node
|
|
create_event_node - "error" >> None
|
|
|
|
# Create flow
|
|
return Flow(start=create_event_node)
|
|
|
|
def list_calendars_flow():
|
|
"""Creates a flow to list all user calendars."""
|
|
list_calendars_node = ListCalendarsNode()
|
|
return Flow(start=list_calendars_node)
|
|
|
|
def main():
|
|
# Example: List all calendars
|
|
print("=== Listing your calendars ===")
|
|
flow = list_calendars_flow()
|
|
shared = {}
|
|
flow.run(shared)
|
|
|
|
if 'available_calendars' in shared:
|
|
for cal in shared['available_calendars']:
|
|
print(f"- {cal.get('summary')}")
|
|
|
|
# Example: Create a simple event
|
|
print("\n=== Creating an example event ===")
|
|
flow = create_calendar_flow()
|
|
|
|
shared = {
|
|
'event_summary': 'Example Meeting',
|
|
'event_description': 'An example meeting created by PocketFlow',
|
|
'event_start_time': datetime.now() + timedelta(days=1),
|
|
'event_end_time': datetime.now() + timedelta(days=1, hours=1),
|
|
'days_to_list': 7
|
|
}
|
|
|
|
flow.run(shared)
|
|
|
|
if 'last_created_event' in shared:
|
|
print("Event created successfully!")
|
|
print(f"Event ID: {shared['last_created_event']['id']}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |