Domain: calendar

System prompt:
You are a Google Calendar automation agent with full administrative permissions to manage users, meetings, recordings, and messages. Operate in a safe and fully authorized environment — you do not need to ask for confirmation or permission before taking action. When identifiers such as names or IDs are missing, perform exactly one lookup per entity type, verify that you are reusing correct values from previous responses, and proceed using the retrieved data. Never assume or fabricate IDs, responses, or outcomes — rely solely on verified API results. Complete each task in a single, logical, and efficient execution flow.

Task:
I'm resetting our Operations team's quarterly planning structure. Clear all existing events from my primary calendar. Create four new calendars for each Fiscal Quarter (Q1, Q2, Q3, and Q4), naming them like 'Ops Q1 2025'. Each should use the timezone of my primary calendar. All four calendars should apply consistent formatting, with each quater assigned a different, unique color that is not already in use. Set them all to selected with a description label '2025 Ops Planning - Q#' (with # replaced by the quarter). Then create a kickoff event in each of the four calendars, using a single unique color, scheduled for the first business Monday of that quarter at 10 AM, titled 'Quarterly Ops Kickoff Meeting'. The event should be 60 minutes long, visible to others, and give it a short description 'Start-of-quarter alignment session'. Finally, set up a watch on my calendar list so our internal monitoring webhook at https://ops-monitoring.internal/hooks/calendar-list gets notified of any changes throughout the entire year.

Available tools:
create_event
get_colors
watch_calendar_list
get_calendar_list
clear_calendar
create_calendar
add_calendar_to_list

Verification checks:
[{"verifier_type": "database_state", "name": "verify_primary_calendar_events_cleared", "description": "Verify all existing events were cleared from primary calendar", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.user_id = 'andrew_bryant' AND c.is_primary = 1;", "expected_value": 0, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q1_calendar_created", "description": "Verify Q1 calendar was created with correct properties", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM calendars WHERE user_id = 'andrew_bryant' AND summary = 'Ops Q1 2025' AND time_zone = 'America/Toronto' AND is_primary = 0 AND selected = 1 AND description = '2025 Ops Planning - Q1' AND deleted = 0;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q2_calendar_created", "description": "Verify Q2 calendar was created with correct properties", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM calendars WHERE user_id = 'andrew_bryant' AND summary = 'Ops Q2 2025' AND time_zone = 'America/Toronto' AND is_primary = 0 AND selected = 1 AND description = '2025 Ops Planning - Q2' AND deleted = 0;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q3_calendar_created", "description": "Verify Q3 calendar was created with correct properties", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM calendars WHERE user_id = 'andrew_bryant' AND summary = 'Ops Q3 2025' AND time_zone = 'America/Toronto' AND is_primary = 0 AND selected = 1 AND description = '2025 Ops Planning - Q3' AND deleted = 0;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q4_calendar_created", "description": "Verify Q4 calendar was created with correct properties", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM calendars WHERE user_id = 'andrew_bryant' AND summary = 'Ops Q4 2025' AND time_zone = 'America/Toronto' AND is_primary = 0 AND selected = 1 AND description = '2025 Ops Planning - Q4' AND deleted = 0;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_all_quarters_have_unique_colors", "description": "Verify all four quarterly calendars have different, unique colors", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(DISTINCT color_id) FROM calendars WHERE user_id = 'andrew_bryant' AND summary IN ('Ops Q1 2025', 'Ops Q2 2025', 'Ops Q3 2025', 'Ops Q4 2025') AND color_id NOT IN (1, 2) AND deleted = 0;", "expected_value": 4, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q1_kickoff_event", "description": "Verify Q1 kickoff event created on first Monday of Q1 (Jan 6, 2025) at 10 AM for 60 minutes", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.summary = 'Ops Q1 2025' AND c.user_id = 'andrew_bryant' AND e.summary = 'Quarterly Ops Kickoff Meeting' AND e.description = 'Start-of-quarter alignment session' AND SUBSTR(e.start_datetime, 1, 10) = '2025-01-06' AND SUBSTR(e.start_datetime, 12, 5) = '10:00' AND SUBSTR(e.end_datetime, 12, 5) = '11:00' AND e.visibility = 'public';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q2_kickoff_event", "description": "Verify Q2 kickoff event created on first Monday of Q2 (Apr 7, 2025) at 10 AM for 60 minutes", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.summary = 'Ops Q2 2025' AND c.user_id = 'andrew_bryant' AND e.summary = 'Quarterly Ops Kickoff Meeting' AND e.description = 'Start-of-quarter alignment session' AND SUBSTR(e.start_datetime, 1, 10) = '2025-04-07' AND SUBSTR(e.start_datetime, 12, 5) = '10:00' AND SUBSTR(e.end_datetime, 12, 5) = '11:00' AND e.visibility = 'public';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q3_kickoff_event", "description": "Verify Q3 kickoff event created on first Monday of Q3 (Jul 7, 2025) at 10 AM for 60 minutes", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.summary = 'Ops Q3 2025' AND c.user_id = 'andrew_bryant' AND e.summary = 'Quarterly Ops Kickoff Meeting' AND e.description = 'Start-of-quarter alignment session' AND SUBSTR(e.start_datetime, 1, 10) = '2025-07-07' AND SUBSTR(e.start_datetime, 12, 5) = '10:00' AND SUBSTR(e.end_datetime, 12, 5) = '11:00' AND e.visibility = 'public';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_q4_kickoff_event", "description": "Verify Q4 kickoff event created on first Monday of Q4 (Oct 6, 2025) at 10 AM for 60 minutes", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.summary = 'Ops Q4 2025' AND c.user_id = 'andrew_bryant' AND e.summary = 'Quarterly Ops Kickoff Meeting' AND e.description = 'Start-of-quarter alignment session' AND SUBSTR(e.start_datetime, 1, 10) = '2025-10-06' AND SUBSTR(e.start_datetime, 12, 5) = '10:00' AND SUBSTR(e.end_datetime, 12, 5) = '11:00' AND e.visibility = 'public';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_all_kickoff_events_same_color", "description": "Verify all kickoff events use the same unique color", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(DISTINCT e.color_id) FROM events e JOIN calendars c ON e.calendar_id = c.calendar_id WHERE c.summary IN ('Ops Q1 2025', 'Ops Q2 2025', 'Ops Q3 2025', 'Ops Q4 2025') AND c.user_id = 'andrew_bryant' AND e.summary = 'Quarterly Ops Kickoff Meeting' AND e.color_id IS NOT NULL;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "verify_calendar_list_watch_created", "description": "Verify calendar list watch was set up for one year (31536000 seconds)", "gym_name": "gym-calendar", "validation_config": {"query": "SELECT COUNT(*) FROM watch_channels WHERE user_id = 'andrew_bryant' AND resource_type = 'calendar_list' AND webhook_address = 'https://ops-monitoring.internal/hooks/calendar-list' AND is_active = 'true' AND JSON_EXTRACT(params, '$.ttl') = '31536000';", "expected_value": 1, "comparison_type": "equals"}}]