Google Calendar plugin cannot create true all-day events
What issue are you seeing?
The Google Calendar plugin in Codex cannot create or update true all-day events. The exposed create_event and update_event tools only accept start_time and end_time as RFC3339 datetime strings, but Google Calendar requires start.date and end.date for true all-day events.
This makes deadline/date-marker workflows impossible to represent correctly through the connector. The workaround is to create a timed event, but that is semantically wrong and appears on the calendar as a time block.
Environment
- Codex CLI:
0.142.5 - Codex app/plugin context: Desktop app task using Apps connector tools
- Google Calendar plugin:
google-calendarversion1.2.4 - Plugin ID seen locally:
plugin_connector_1p_f8509de903288191b14a160c6c5d20b0 - OS: macOS 15.7.7, x86_64
- Calendar account used by connector: Google Calendar app connector profile, not browser UI
Steps to reproduce
- Install/connect the Google Calendar plugin in Codex.
- Ask Codex to create an all-day event on a secondary Google Calendar.
- Use the available
create_eventtool. - Observe that the schema requires:
start_time: full ISO-8601/RFC3339 datetimeend_time: full ISO-8601/RFC3339 datetime
- Try date-only values such as
2026-07-31and2026-08-01. - Try JSON-shaped strings such as
{"date":"2026-07-31"}and{"date":"2026-08-01"}.
Actual behavior
- The connector rejects date-only or JSON-shaped all-day attempts with HTTP 400.
- The only successful path is creating a timed event such as
2026-07-31T09:00:00-07:00to2026-07-31T09:30:00-07:00. - That creates a timed event, not a true all-day event.
Expected behavior
The connector should support Google Calendar's all-day event representation:
{
"summary": "Example deadline",
"description": "Notion URL: ...\nSource URL: ...",
"start": { "date": "2026-07-31" },
"end": { "date": "2026-08-01" },
"transparency": "transparent"
}
end.date is exclusive in Google Calendar, so a one-day all-day event on July 31 ends on August 1.
Suggested tool API
Add first-class fields to create_event and update_event, for example:
{
"all_day": true,
"start_date": "2026-07-31",
"end_date": "2026-08-01"
}
or allow a raw start / end object equivalent to the Google Calendar API.
The all-day path should still support existing fields such as calendar_id, title, description, transparency, visibility, reminders, attendees, and event color.
Impact
This affects common Calendar workflows:
- deadlines
- application due dates
- holidays
- birthdays
- date markers
- travel days
- all-day reminders
Timed-event workarounds are misleading and pollute the user's schedule with fake time blocks.