Why does Google Calendar's "Create Event" feature on Pipedream SDK v1.1.3 fail with all date formats in Detailed mode but works in Quick Add mode?

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 pipedream package)
  • 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 :white_check_mark:

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 :x:

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 text prop (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

  1. The error message comes from Google Calendar API, suggesting the component is sending malformed data
  2. 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’

It looks like your message is empty. Could you please provide your question or let me know how I can help you with Pipedream?

Note that the addType prop has reloadProps: true so the issue here is you’re not passing a dynamicPropsId in your request

See the documentation here: Executing Actions - Pipedream

We’ve just shipped an update that removes the need for reloadProps if you’re not using recurrence, so when using the latest version of the component you probably won’t run into this issue again.

Still, you should have a look at the above docs to understand the reloadProps cycle for other components that you may need to use it.