{"openapi":"3.1.0","info":{"title":"Google Calendar Tool","description":"OpenAPI tool server for reading and creating events in an existing Google Calendar.","version":"1.0.0"},"paths":{"/list_calendars":{"post":{"summary":"List Calendars","operationId":"list_calendars_list_calendars_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/list_events":{"post":{"summary":"List Events","operationId":"list_events_list_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEventsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/create_event":{"post":{"summary":"Create Event","operationId":"create_event_create_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEventRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/quick_add_event":{"post":{"summary":"Quick Add Event","operationId":"quick_add_event_quick_add_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickAddRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update_event":{"post":{"summary":"Update Event","operationId":"update_event_update_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/delete_event":{"post":{"summary":"Delete Event","operationId":"delete_event_delete_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEventRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Delete Event Delete Event Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"CalendarItem":{"properties":{"id":{"type":"string","title":"Id"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"primary":{"type":"boolean","title":"Primary","default":false},"access_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Role"},"time_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Zone"}},"type":"object","required":["id"],"title":"CalendarItem"},"CalendarListResponse":{"properties":{"calendars":{"items":{"$ref":"#/components/schemas/CalendarItem"},"type":"array","title":"Calendars"}},"type":"object","required":["calendars"],"title":"CalendarListResponse"},"CreateEventRequest":{"properties":{"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"},"summary":{"type":"string","title":"Summary"},"start":{"type":"string","title":"Start","description":"ISO datetime or YYYY-MM-DD for all-day events."},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End","description":"ISO datetime. If omitted, duration_minutes is used."},"duration_minutes":{"type":"integer","maximum":1440.0,"minimum":1.0,"title":"Duration Minutes","default":30},"timezone":{"type":"string","title":"Timezone","default":"Europe/Moscow"},"all_day":{"type":"boolean","title":"All Day","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"reminders":{"items":{"$ref":"#/components/schemas/Reminder"},"type":"array","title":"Reminders"}},"type":"object","required":["summary","start"],"title":"CreateEventRequest"},"DeleteEventRequest":{"properties":{"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"},"event_id":{"type":"string","title":"Event Id"}},"type":"object","required":["event_id"],"title":"DeleteEventRequest"},"EventItem":{"properties":{"id":{"type":"string","title":"Id"},"calendar_id":{"type":"string","title":"Calendar Id"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"start":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"End"},"html_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Link"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["id","calendar_id"],"title":"EventItem"},"EventsResponse":{"properties":{"events":{"items":{"$ref":"#/components/schemas/EventItem"},"type":"array","title":"Events"}},"type":"object","required":["events"],"title":"EventsResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ListEventsRequest":{"properties":{"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id","description":"Calendar ID. Defaults to GCAL_DEFAULT_CALENDAR_ID or primary."},"time_min":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Min","description":"ISO datetime. Defaults to now."},"time_max":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Max","description":"ISO datetime. Defaults to 30 days after time_min."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","description":"Free text search query."},"max_results":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Results","default":10}},"type":"object","title":"ListEventsRequest"},"QuickAddRequest":{"properties":{"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"},"text":{"type":"string","title":"Text","description":"Natural language event text, e.g. 'Dentist tomorrow 10am'."}},"type":"object","required":["text"],"title":"QuickAddRequest"},"Reminder":{"properties":{"minutes":{"type":"integer","maximum":40320.0,"minimum":0.0,"title":"Minutes"},"method":{"type":"string","title":"Method","description":"Google Calendar reminder method, usually popup or email.","default":"popup"}},"type":"object","required":["minutes"],"title":"Reminder"},"UpdateEventRequest":{"properties":{"calendar_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Calendar Id"},"event_id":{"type":"string","title":"Event Id"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"},"duration_minutes":{"type":"integer","maximum":1440.0,"minimum":1.0,"title":"Duration Minutes","default":30},"timezone":{"type":"string","title":"Timezone","default":"Europe/Moscow"},"all_day":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"All Day"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"reminders":{"anyOf":[{"items":{"$ref":"#/components/schemas/Reminder"},"type":"array"},{"type":"null"}],"title":"Reminders"}},"type":"object","required":["event_id"],"title":"UpdateEventRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}