This topic was automatically generated from Slack. You can find the original thread here.
Bug Report: Google Calendar “Create Event” (Detailed) - “Start and end times must either both be date or both be dateTime”
Environment
- Pipedream SDK: v1.1.3 (Python
pipedreampackage) - Action:
google_calendar-create-event - Mode:
addType: "detailed"(NOT Quick Add) - Account: Connected via Pipedream Connect OAuth
Issue
When using the google_calendar-create-event action with addType: "detailed", the action always fails with:
Error: Start and end times must either both be date or both be dateTime.
This happens regardless of the date format used.
What Works 
Quick Add mode works perfectly:
python
configured_props = {
'addType': 'quick',
'text': 'Meeting tomorrow at 3pm',
'calendarId': 'primary',
'googleCalendar': {'authProvisionId': 'apn_xxx'},
}
# Result: Event created successfully
What Fails 
Detailed mode fails with any date format:
python
configured_props = {
'addType': 'detailed',
'summary': 'Test Event',
'eventStartDate': '2026-01-16T18:00:00Z', # UTC format
'eventEndDate': '2026-01-16T19:00:00Z',
'calendarId': 'primary',
'googleCalendar': {'authProvisionId': 'apn_xxx'},
}
# Error: Start and end times must either both be date or both be dateTime.
Date Formats Tested (All Failed)
| Format | eventStartDate | eventEndDate |
|---|---|---|
| UTC (Z) | 2026-01-16T18:00:00Z |
2026-01-16T19:00:00Z |
| Offset | 2026-01-16T15:00:00-03:00 |
2026-01-16T16:00:00-03:00 |
| All-day | 2026-01-16 |
2026-01-17 |
| No TZ | 2026-01-16T15:00:00 |
2026-01-16T16:00:00 |
| With timeZone prop | Added timeZone: 'America/Argentina/Buenos_Aires' |
Same result |
Additional Props Tested
- With/without
textprop (hidden but required according to reload_props) - With/without
summary - With/without
timeZone - With
calendarId: 'primary'vs email address - With/without
colorId,attendees,createMeetRoom
API Call Details
python
from pipedream import AsyncPipedream
client = AsyncPipedream(
client_id='xxx',
client_secret='xxx',
project_id='proj_xxx',
project_environment='development',
)
result = await client.actions.run(
action_id='google_calendar-create-event',
external_user_id='[user@example.com](mailto:user@example.com)',
configured_props={
'addType': 'detailed',
'summary': 'Test Event',
'eventStartDate': '2026-01-16T18:00:00Z',
'eventEndDate': '2026-01-16T19:00:00Z',
'calendarId': 'primary',
'googleCalendar': {'authProvisionId': 'apn_xxx'},
},
)
Full Error Response
json
{
"exports": {},
"os": [
{
"ts": 1768488583283,
"k": "error",
"err": {
"name": "Error",
"message": "Start and end times must either both be date or both be dateTime.",
"stack": "Error: Start and end times must either both be date or both be dateTime.\n at makeErrorObservation (/var/task/node_modules/@lambda-v2/component-runtime/src/makeErrorObservation.js:7:11)\n at captureObservations..."
}
}
],
"ret": null
}
Observations
- The error message comes from Google Calendar API, suggesting the component is sending malformed data
- Looking at the source code, the component uses string length to determine date vs dateTime:
javascript
start: {
date: this.eventStartDate?.length <= 10 ? this.eventStartDate : undefined,
dateTime: this.eventStartDate?.length > 10 ? this.eventStartDate : undefined,
timeZone,
}
3. This logic appears correct, but something in the execution is failing
4. `reload_props` shows `text` as `required: true, hidden: true` when `addType: detailed`
### Questions
1. Is there a known issue with the `google_calendar-create-event` component in detailed mode?
2. Is there a specific date format required that differs from the documentation?
3. Could the `text` prop being required but hidden cause issues when not provided?
### Workaround
Using ****Quick Add mode**** (`addType: 'quick'`) with natural language works correctly:
python
‘text’: ‘Meeting on January 16 at 3pm for 1 hour’