Using API v1? See what changes in v2, or the v1 docs
Events
Manage events across Google Calendar, Microsoft Outlook and virtual calendars, including metadata, attachments and conferencing.
The examples use IDs from a sample sandbox. Your sandbox has the same people, calendars and events with its own IDs, which GET /v2/sandbox returns. When you're signed in to the dashboard, Try it fills in your IDs and sends the request to your sandbox, never to live data.
List events
Lists the events in one calendar of a connected account, within an optional time window and with optional filters.
To list several accounts as one timeline in start order, send accountIds or subjectId with from and to. To find events by your own metadata across the app, send up to 5 metadata.<key>=<value> parameters.
A recurring series is returned as one event unless expand=true. sync=true starts an incremental sync of the window. To get only the changes since then, send the syncToken from the last page in a later request.
The v1 parameter names (calendarId, timeMin, timeMax, maxResults, nextPageToken and others) still work. Responses to requests that use them include a Pyas-Deprecated-Fields header.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
- Name
from- Type
- string (date-time)
- Description
The start of the time window.
- Name
to- Type
- string (date-time)
- Description
The end of the time window.
- Name
expand- Type
- boolean
- Description
Returns each occurrence of a recurring series as a separate event. Required for
sort=start.
- Name
limit- Type
- integer
- Description
The maximum number of results in one page. Defaults to 100. From 1 to 250.
- Name
cursor- Type
- string
- Description
The
nextCursorfrom the previous page.
- Name
syncToken- Type
- string
- Description
The
syncTokenfrom the last page of a sync. Returns only the changes since that sync.
- Name
sync- Type
- boolean
- Description
Starts a sync of the time window. Returns every event in the window, with a
syncTokenon the last page.
- Name
sort- Type
- string
- Description
The sort order:
start(requiresexpand=true) orupdated.
- Name
include- Type
- string
- Description
Additional fields to include, as a comma-separated list.
rawis the provider's original payload.extendedPropertiesis the provider's extended properties.conferencingSettingsis available only when you retrieve one event.
- Name
extendedPropertyIds- Type
- string
- Description
Outlook only, with
include=extendedProperties. The IDs of up to 10 extended properties to read, of any type, such asString {guid} Name orderId,IntegerArray {guid} Name countsorInteger 0x8012.
- Name
fields- Type
- string
- Description
The top-level fields to return, comma-separated, such as
id,title,startsAt,endsAt. Theidfield is always included.
- Name
duplicates- Type
- string
- Description
With several accounts, how to handle the same event on more than one calendar.
flag(the default) marks copies withduplicateOf.collapsekeeps the first and lists the others inalsoIn.
- Name
q- Type
- string
- Description
Returns events whose title, description or location contains this text.
- Name
title- Type
- string
- Description
Returns events whose title contains this text.
- Name
location- Type
- string
- Description
Returns events whose location contains this text.
- Name
attendee- Type
- string
- Description
Returns events with any of these attendees, as a comma-separated list of email addresses.
- Name
organizer- Type
- string
- Description
Returns events organized by any of these email addresses, comma-separated.
- Name
status- Type
- string
- Description
Any of
confirmed,tentativeandcancelled, comma-separated. Defaults toconfirmed,tentative.
- Name
recurring- Type
- boolean
- Description
truereturns only events in a recurring series.falsereturns only single events.
- Name
isAllDay- Type
- boolean
- Description
- Name
hasConference- Type
- boolean
- Description
truereturns only events with a meeting link.falsereturns only events without one.
- Name
conferenceType- Type
- string
- Description
The conferencing service, such as
zoom,meetorteams.
- Name
hasAttachments- Type
- boolean
- Description
- Name
showAs- Type
- string
- Description
Any of
busy,free,tentative,outOfOfficeandworkingElsewhere, comma-separated.
- Name
eventType- Type
- string
- Description
Any of
default,focusTime,outOfOffice,workingLocation,birthdayandfromGmail, comma-separated.
- Name
category- Type
- string
- Description
Returns events with any of these categories.
- Name
importance- Type
- string
- Description
Any of
low,normalandhigh, comma-separated.
- Name
visibility- Type
- string
- Description
- Name
updatedSince- Type
- string (date-time)
- Description
Returns events updated since this time.
- Name
accountIds- Type
- string
- Description
The Pyas
accountIdvalues of up to 20 connected accounts. Send a comma-separated list or repeat the parameter.
- Name
subjectId- Type
- string
- Description
Selects every connected account labeled with this
subjectId.
- Name
provider- Type
- string
- Description
Limits
accountIdsorsubjectIdto accounts on this provider. One ofgoogle,microsoft,pyas.
- Name
calendarRefs- Type
- string
- Description
With several accounts, up to 10 calendars to read on each account. Defaults to
primary. Send a comma-separated list or repeat the parameter.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.RESOURCE_SYNC_TOKEN_EXPIRED(410): The sync token has expired.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl 'https://api.pyas.io/v2/events?accountId=sbx_fda58c5980_1&from=2026-11-07T00%3A00%3A00Z&to=2026-11-28T00%3A00%3A00Z&expand=true' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": [ { "id": "sb559d0de42dffb4f183c156f8_20261102T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-08T14:30:00Z", "endsAt": "2026-11-08T14:45:00Z", "startsAtLocal": "2026-11-08T09:30:00-05:00", "endsAtLocal": "2026-11-08T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-08T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261102T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sba938ba8604d9bdff564147c2_20261102T190000Z", "iCalUID": "sba938ba8604d9bdff564147c2@cal.pyas.io", "title": "1:1 with Sarah", "description": null, "location": null, "startsAt": "2026-11-08T19:00:00Z", "endsAt": "2026-11-08T19:30:00Z", "startsAtLocal": "2026-11-08T14:00:00-05:00", "endsAtLocal": "2026-11-08T14:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/9302336753", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://zoom.us/j/9302336753", "recurrence": null, "series": { "masterEventId": "sba938ba8604d9bdff564147c2", "originalStartsAt": "2026-11-08T19:00:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.578Z", "updatedAt": "2026-11-14T20:00:23.578Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sba938ba8604d9bdff564147c2_20261102T190000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261103T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-09T14:30:00Z", "endsAt": "2026-11-09T14:45:00Z", "startsAtLocal": "2026-11-09T09:30:00-05:00", "endsAtLocal": "2026-11-09T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-09T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261103T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261104T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-10T14:30:00Z", "endsAt": "2026-11-10T14:45:00Z", "startsAtLocal": "2026-11-10T09:30:00-05:00", "endsAtLocal": "2026-11-10T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-10T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261104T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261105T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-11T14:30:00Z", "endsAt": "2026-11-11T14:45:00Z", "startsAtLocal": "2026-11-11T09:30:00-05:00", "endsAtLocal": "2026-11-11T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-11T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261105T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sbf60c8ae6a9f17c1e3b6cc2b8", "iCalUID": "sbf60c8ae6a9f17c1e3b6cc2b8@cal.pyas.io", "title": "Product Sync", "description": null, "location": null, "startsAt": "2026-11-11T16:00:00Z", "endsAt": "2026-11-11T17:00:00Z", "startsAtLocal": "2026-11-11T11:00:00-05:00", "endsAtLocal": "2026-11-11T12:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.586Z", "updatedAt": "2026-11-14T20:00:23.586Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sbf60c8ae6a9f17c1e3b6cc2b8", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": { "project": "atlas" } }, { "id": "sb559d0de42dffb4f183c156f8_20261106T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-12T14:30:00Z", "endsAt": "2026-11-12T14:45:00Z", "startsAtLocal": "2026-11-12T09:30:00-05:00", "endsAtLocal": "2026-11-12T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-12T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261106T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sba4ff5f08df3d4dcbddca25a3_20261108T150000Z", "iCalUID": "sba4ff5f08df3d4dcbddca25a3@cal.pyas.io", "title": "Sprint Planning", "description": null, "location": null, "startsAt": "2026-11-14T15:00:00Z", "endsAt": "2026-11-14T16:00:00Z", "startsAtLocal": "2026-11-14T10:00:00-05:00", "endsAtLocal": "2026-11-14T11:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "needsAction", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": { "masterEventId": "sba4ff5f08df3d4dcbddca25a3", "originalStartsAt": "2026-11-14T15:00:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.569Z", "updatedAt": "2026-11-14T20:00:23.569Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sba4ff5f08df3d4dcbddca25a3_20261108T150000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sbce3d2d42c2a4d690a9860fbb", "iCalUID": "sbce3d2d42c2a4d690a9860fbb@cal.pyas.io", "title": "Lunch with Alex", "description": null, "location": "Corner Cafe", "startsAt": "2026-11-14T17:30:00Z", "endsAt": "2026-11-14T18:30:00Z", "startsAtLocal": "2026-11-14T12:30:00-05:00", "endsAtLocal": "2026-11-14T13:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "free", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.612Z", "updatedAt": "2026-11-14T20:00:23.612Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sbce3d2d42c2a4d690a9860fbb", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261109T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-15T14:30:00Z", "endsAt": "2026-11-15T14:45:00Z", "startsAtLocal": "2026-11-15T09:30:00-05:00", "endsAtLocal": "2026-11-15T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-15T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261109T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb16ba49792a79d2ce856e789a", "iCalUID": "sb16ba49792a79d2ce856e789a@cal.pyas.io", "title": "Customer onboarding (Zoom)", "description": null, "location": null, "startsAt": "2026-11-15T16:00:00Z", "endsAt": "2026-11-15T17:00:00Z", "startsAtLocal": "2026-11-15T11:00:00-05:00", "endsAtLocal": "2026-11-15T12:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/67556028668?pwd=k1NV6aHSXvDYLT96s3yhRedsmHRIroO0", "meetingId": "67556028668", "passcode": "1wWGDz58DC", "dialIn": [ { "label": "US New York", "number": "+1 555 0100", "pin": "604224" } ] }, "meetingUrl": "https://zoom.us/j/67556028668?pwd=k1NV6aHSXvDYLT96s3yhRedsmHRIroO0", "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:24.345Z", "updatedAt": "2026-11-14T20:00:24.345Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb16ba49792a79d2ce856e789a", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sba938ba8604d9bdff564147c2_20261109T190000Z", "iCalUID": "sba938ba8604d9bdff564147c2@cal.pyas.io", "title": "1:1 with Sarah", "description": null, "location": null, "startsAt": "2026-11-15T19:00:00Z", "endsAt": "2026-11-15T19:30:00Z", "startsAtLocal": "2026-11-15T14:00:00-05:00", "endsAtLocal": "2026-11-15T14:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/9302336753", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://zoom.us/j/9302336753", "recurrence": null, "series": { "masterEventId": "sba938ba8604d9bdff564147c2", "originalStartsAt": "2026-11-15T19:00:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.578Z", "updatedAt": "2026-11-14T20:00:23.578Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sba938ba8604d9bdff564147c2_20261109T190000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sbff8ee84b7939a1d7a4943ff6", "iCalUID": "sbff8ee84b7939a1d7a4943ff6@cal.pyas.io", "title": "Design Review", "description": null, "location": "Room 4B", "startsAt": "2026-11-15T20:00:00Z", "endsAt": "2026-11-15T21:00:00Z", "startsAtLocal": "2026-11-15T15:00:00-05:00", "endsAtLocal": "2026-11-15T16:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "needsAction", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.596Z", "updatedAt": "2026-11-14T20:00:23.596Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sbff8ee84b7939a1d7a4943ff6", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261110T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-16T14:30:00Z", "endsAt": "2026-11-16T14:45:00Z", "startsAtLocal": "2026-11-16T09:30:00-05:00", "endsAtLocal": "2026-11-16T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-16T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261110T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb0c940c95b43e44fcf6650886", "iCalUID": "sb0c940c95b43e44fcf6650886@cal.pyas.io", "title": "Customer Call: Acme", "description": null, "location": null, "startsAt": "2026-11-16T21:00:00Z", "endsAt": "2026-11-16T21:30:00Z", "startsAtLocal": "2026-11-16T16:00:00-05:00", "endsAtLocal": "2026-11-16T16:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/9148612694", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://zoom.us/j/9148612694", "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.603Z", "updatedAt": "2026-11-14T20:00:23.603Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb0c940c95b43e44fcf6650886", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": { "dealId": "deal_42", "stage": "discovery" } }, { "id": "sb559d0de42dffb4f183c156f8_20261111T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-17T14:30:00Z", "endsAt": "2026-11-17T14:45:00Z", "startsAtLocal": "2026-11-17T09:30:00-05:00", "endsAtLocal": "2026-11-17T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-17T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261111T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sbf36d93862d5bc4f8bca3d967", "iCalUID": "sbf36d93862d5bc4f8bca3d967@cal.pyas.io", "title": "Focus time", "description": null, "location": null, "startsAt": "2026-11-17T18:00:00Z", "endsAt": "2026-11-17T20:00:00Z", "startsAtLocal": "2026-11-17T13:00:00-05:00", "endsAtLocal": "2026-11-17T15:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "focusTime", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.627Z", "updatedAt": "2026-11-14T20:00:23.627Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sbf36d93862d5bc4f8bca3d967", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261112T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-18T14:30:00Z", "endsAt": "2026-11-18T14:45:00Z", "startsAtLocal": "2026-11-18T09:30:00-05:00", "endsAtLocal": "2026-11-18T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-18T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261112T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb03fe318b8d28506fffad9254", "iCalUID": "sb03fe318b8d28506fffad9254@cal.pyas.io", "title": "Dentist", "description": null, "location": null, "startsAt": "2026-11-19T13:00:00Z", "endsAt": "2026-11-19T14:00:00Z", "startsAtLocal": "2026-11-19T08:00:00-05:00", "endsAtLocal": "2026-11-19T09:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": "private", "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.619Z", "updatedAt": "2026-11-14T20:00:23.619Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb03fe318b8d28506fffad9254", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261113T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-19T14:30:00Z", "endsAt": "2026-11-19T14:45:00Z", "startsAtLocal": "2026-11-19T09:30:00-05:00", "endsAtLocal": "2026-11-19T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-19T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261113T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261116T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-22T14:30:00Z", "endsAt": "2026-11-22T14:45:00Z", "startsAtLocal": "2026-11-22T09:30:00-05:00", "endsAtLocal": "2026-11-22T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-22T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261116T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb3dc0420b772f0cc723098085", "iCalUID": "sb3dc0420b772f0cc723098085@cal.pyas.io", "title": "Conference talk prep", "description": null, "location": null, "startsAt": "2026-11-22T15:00:00Z", "endsAt": "2026-11-22T16:30:00Z", "startsAtLocal": "2026-11-22T10:00:00-05:00", "endsAtLocal": "2026-11-22T11:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "tentative", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.634Z", "updatedAt": "2026-11-14T20:00:23.634Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb3dc0420b772f0cc723098085", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sba938ba8604d9bdff564147c2_20261116T190000Z", "iCalUID": "sba938ba8604d9bdff564147c2@cal.pyas.io", "title": "1:1 with Sarah", "description": null, "location": null, "startsAt": "2026-11-22T19:00:00Z", "endsAt": "2026-11-22T19:30:00Z", "startsAtLocal": "2026-11-22T14:00:00-05:00", "endsAtLocal": "2026-11-22T14:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/9302336753", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://zoom.us/j/9302336753", "recurrence": null, "series": { "masterEventId": "sba938ba8604d9bdff564147c2", "originalStartsAt": "2026-11-22T19:00:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.578Z", "updatedAt": "2026-11-14T20:00:23.578Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sba938ba8604d9bdff564147c2_20261116T190000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261117T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-23T14:30:00Z", "endsAt": "2026-11-23T14:45:00Z", "startsAtLocal": "2026-11-23T09:30:00-05:00", "endsAtLocal": "2026-11-23T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-23T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261117T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb381bb09d8b9512fdc96458a7", "iCalUID": "sb381bb09d8b9512fdc96458a7@cal.pyas.io", "title": "Company Offsite", "description": null, "location": "Lake House", "startsAt": "2026-11-24T05:00:00Z", "endsAt": "2026-11-26T05:00:00Z", "startsAtLocal": "2026-11-24T00:00:00-05:00", "endsAtLocal": "2026-11-26T00:00:00-05:00", "timezone": "America/New_York", "isAllDay": true, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.643Z", "updatedAt": "2026-11-14T20:00:23.643Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb381bb09d8b9512fdc96458a7", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261118T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-24T14:30:00Z", "endsAt": "2026-11-24T14:45:00Z", "startsAtLocal": "2026-11-24T09:30:00-05:00", "endsAtLocal": "2026-11-24T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-24T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261118T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261119T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-25T14:30:00Z", "endsAt": "2026-11-25T14:45:00Z", "startsAtLocal": "2026-11-25T09:30:00-05:00", "endsAtLocal": "2026-11-25T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-25T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261119T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261120T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-26T14:30:00Z", "endsAt": "2026-11-26T14:45:00Z", "startsAtLocal": "2026-11-26T09:30:00-05:00", "endsAtLocal": "2026-11-26T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-26T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261120T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null } ], "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": { "nextCursor": null, "syncToken": null }}Create an event
Creates an event on a Google Calendar, Microsoft Outlook or virtual calendar. The event can include attendees, a recurrence rule, a meeting link (Google Meet, Microsoft Teams or Zoom), rooms and your own metadata. The v1 request body ({ accountId, calendarId, eventData }) is also accepted.
In the sandbox: conferencing creates the online meeting. Use meet on Google, teams on Outlook, or zoom with a Zoom account on any calendar ({ "provider": "zoom", "accountId": "sbx_fda58c5980_zoom" }).
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and doesn't create the event twice.
Body
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. You can send it here or in the query.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary. You can send it here or in the query.
- Name
title- Type
- string
- Required
- required
- Description
- Name
description- Type
- string
- Description
- Name
location- Type
- string
- Description
- Name
startsAt- Type
- string
- Required
- required
- Description
An ISO 8601 time with a zone, or a date such as
2026-03-15for an all-day event.
- Name
endsAt- Type
- string
- Required
- required
- Description
The end of the event. Must be later than
startsAt.
- Name
timezone- Type
- string
- Description
The IANA time zone of the event. Defaults to the calendar's time zone.
- Name
isAllDay- Type
- boolean
- Description
- Name
attendees- Type
- array of object
- Description
At most 500 items.
- Name
rooms- Type
- array of string
- Description
The email addresses of the rooms to book (see
GET /v2/rooms). On an update, send the complete list. At most 20 items.
- Name
recurrence- Type
- string
- Description
An RFC 5545 RRULE, such as
FREQ=WEEKLY;BYDAY=MO.
- Name
conferencing- Type
- object
- Description
A meeting link, created with the event.
- Name
conferencing.provider- Type
- string
- Required
- required
- Description
One of
meet,teams,zoom.
- Name
conferencing.accountId- Type
- string
- Description
For
zoom, the connected Zoom account to create the meeting with.
- Name
conferencing.options- Type
- ConferencingOptions
- Description
Meeting settings, with the same field names for Zoom, Microsoft Teams and Google Meet. If the conferencing service doesn't support a setting, the request is rejected with the reason.
- Name
reminders- Type
- array of object
- Description
At most 5 items.
- Name
visibility- Type
- string
- Description
One of
default,public,private,confidential.
- Name
notifyAttendees- Type
- boolean
- Description
Whether the provider emails attendees about this change. Outlook always emails them: there,
falseisn't applied, and the response'smeta.notifyAttendeessays so.
- Name
metadata- Type
- Metadata
- Description
Your own key-value pairs, stored by Pyas with the object. A value is text, a number, a boolean or a list of those.
- Name
showAs- Type
- string
- Description
One of
busy,free,tentative,outOfOffice,workingElsewhere.
- Name
color- Type
- string
- Description
The color, as
#rrggbb. The provider uses the closest color it offers.
- Name
guests- Type
- object
- Description
- Name
guests.canModify- Type
- boolean
- Description
- Name
guests.canInviteOthers- Type
- boolean
- Description
- Name
guests.canSeeGuests- Type
- boolean
- Description
- Name
guests.canProposeTimes- Type
- boolean
- Description
- Name
importance- Type
- string
- Description
One of
low,normal,high.
- Name
categories- Type
- array of string
- Description
At most 25 items.
- Name
responseRequested- Type
- boolean
- Description
- Name
autoDecline- Type
- object
- Description
- Name
autoDecline.mode- Type
- string
- Description
One of
none,all,new.
- Name
autoDecline.message- Type
- string | null
- Description
- Name
doNotDisturb- Type
- boolean
- Description
- Name
workingLocation- Type
- WorkingLocation
- Description
- Name
source- Type
- object
- Description
- Name
source.url- Type
- string
- Required
- required
- Description
- Name
source.title- Type
- string
- Description
- Name
endTimeUnspecified- Type
- boolean
- Description
- Name
privateCopy- Type
- boolean
- Description
- Name
status- Type
- string
- Description
To cancel an event, send a
DELETErequest instead. One ofconfirmed,tentative.
- Name
providerOptions- Type
- ProviderOptions
- Description
Provider-specific fields that have no equivalent in v2, grouped by provider. Each group applies only to accounts on that provider.
- Name
eventType- Type
- string
- Description
Can be set only when creating an event, because providers don't allow it to be updated. One of
default,focusTime,outOfOffice,workingLocation,birthday.
- Name
id- Type
- string
- Description
Google Calendar only. Your own event ID, 5 to 1024 characters from a-v and 0-9.
- Name
birthday- Type
- object
- Description
- Name
birthday.type- Type
- string
- Required
- required
- Description
One of
birthday,anniversary,custom,other,self.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.VALIDATION_INVALID_TIMEZONE(400): The time zone is not an IANA time zone name.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.VALIDATION_REJECTED_BY_PROVIDER(422): The calendar provider rejected this input.VALIDATION_IDEMPOTENCY_CONFLICT(422): This idempotency key was already used with a different request.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_google", "title": "Project kickoff", "startsAt": "2026-11-16T15:00:00Z", "endsAt": "2026-11-16T16:00:00Z", "attendees": [ { "email": "sam.patel@example.org", "name": "Sam Patel" } ], "reminders": [ { "method": "popup", "minutesBefore": 10 } ], "conferencing": { "provider": "meet", "options": { "admission": "invited" } }, "metadata": { "crmId": "opp_981" }}'Response
{ "success": true, "data": { "id": "4904j5d3fo5d3gdr94nctoas1kht4b9r", "iCalUID": "4904j5d3fo5d3gdr94nctoas1kht4b9r@google.com", "title": "Project kickoff", "description": null, "location": null, "startsAt": "2026-11-16T15:00:00Z", "endsAt": "2026-11-16T16:00:00Z", "startsAtLocal": "2026-11-16T10:00:00-05:00", "endsAtLocal": "2026-11-16T11:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "sam.patel@example.org", "name": "Sam Patel", "response": "needsAction", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "avery.brooks@example.com", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/reo-kkbh-vib", "meetingId": "reo-kkbh-vib", "passcode": null, "dialIn": [ { "label": "+1 555-0100", "number": "+1-555-0100", "pin": "603577298" } ], "settings": { "admission": "invited", "recording": "none", "transcription": false } }, "meetingUrl": "https://meet.google.com/reo-kkbh-vib", "recurrence": null, "series": null, "reminders": [ { "method": "popup", "minutesBefore": 10 } ], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:25.552Z", "updatedAt": "2026-11-14T20:00:25.552Z", "version": "\"1\"", "provider": "google", "providerRefs": { "eventId": "4904j5d3fo5d3gdr94nctoas1kht4b9r", "calendarId": "avery.brooks@example.com", "accountId": "sbx_fda58c5980_google" }, "metadata": { "crmId": "opp_981" } }, "provider": "google", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Get an event
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Required
- required
- Description
The
accountIdof the connected account.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
- Name
include- Type
- string
- Description
Additional fields to include, as a comma-separated list.
rawis the provider's original payload.extendedPropertiesis the provider's extended properties.conferencingSettingsis available only when you retrieve one event.
- Name
extendedPropertyIds- Type
- string
- Description
Outlook only, with
include=extendedProperties. The IDs of up to 10 extended properties to read, of any type, such asString {guid} Name orderId,IntegerArray {guid} Name countsorInteger 0x8012.
- Name
fields- Type
- string
- Description
The top-level fields to return, comma-separated, such as
id,title,startsAt,endsAt. Theidfield is always included.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl 'https://api.pyas.io/v2/events/sb16ba49792a79d2ce856e789a?accountId=sbx_fda58c5980_1' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": { "id": "sb16ba49792a79d2ce856e789a", "iCalUID": "sb16ba49792a79d2ce856e789a@cal.pyas.io", "title": "Customer onboarding (Zoom)", "description": null, "location": null, "startsAt": "2026-11-15T16:00:00Z", "endsAt": "2026-11-15T17:00:00Z", "startsAtLocal": "2026-11-15T11:00:00-05:00", "endsAtLocal": "2026-11-15T12:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "zoom", "joinUrl": "https://zoom.us/j/67556028668?pwd=k1NV6aHSXvDYLT96s3yhRedsmHRIroO0", "meetingId": "67556028668", "passcode": "1wWGDz58DC", "dialIn": [ { "label": "US New York", "number": "+1 555 0100", "pin": "604224" } ] }, "meetingUrl": "https://zoom.us/j/67556028668?pwd=k1NV6aHSXvDYLT96s3yhRedsmHRIroO0", "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:24.345Z", "updatedAt": "2026-11-14T20:00:24.345Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb16ba49792a79d2ce856e789a", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Update an event
Updates the event. Send only the fields to update. Setting a nullable field to null clears it. To update the event only if it hasn't changed since you read it, send its version in the If-Match header. The v1 request body is also accepted.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
If-Match- Type
- string
- Description
The event's
version(orETag). The request succeeds only if the event hasn't changed since that version. A stale version returnsRESOURCE_CONFLICT.
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. You can send it here or in the query.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary. You can send it here or in the query.
- Name
title- Type
- string
- Description
- Name
description- Type
- string | null
- Description
- Name
location- Type
- string | null
- Description
- Name
startsAt- Type
- string
- Description
An ISO 8601 time with a zone, or a date such as
2026-03-15for an all-day event.
- Name
endsAt- Type
- string
- Description
The end of the event. Must be later than
startsAt.
- Name
timezone- Type
- string
- Description
The IANA time zone of the event. Defaults to the calendar's time zone.
- Name
isAllDay- Type
- boolean
- Description
- Name
attendees- Type
- array of object
- Description
At most 500 items.
- Name
rooms- Type
- array of string
- Description
The email addresses of the rooms to book (see
GET /v2/rooms). On an update, send the complete list. At most 20 items.
- Name
recurrence- Type
- string | null
- Description
- Name
conferencing- Type
- object | null
- Description
Send
providerto create a new meeting,optionsalone to update the existing meeting's settings, ornullto remove the meeting.
- Name
reminders- Type
- array of object
- Description
At most 5 items.
- Name
visibility- Type
- string
- Description
One of
default,public,private,confidential.
- Name
notifyAttendees- Type
- boolean
- Description
Whether the provider emails attendees about this change. Outlook always emails them: there,
falseisn't applied, and the response'smeta.notifyAttendeessays so.
- Name
metadata- Type
- Metadata
- Description
Your own key-value pairs, stored by Pyas with the object. A value is text, a number, a boolean or a list of those.
- Name
showAs- Type
- string
- Description
One of
busy,free,tentative,outOfOffice,workingElsewhere.
- Name
color- Type
- string | null
- Description
- Name
guests- Type
- object
- Description
- Name
guests.canModify- Type
- boolean
- Description
- Name
guests.canInviteOthers- Type
- boolean
- Description
- Name
guests.canSeeGuests- Type
- boolean
- Description
- Name
guests.canProposeTimes- Type
- boolean
- Description
- Name
importance- Type
- string
- Description
One of
low,normal,high.
- Name
categories- Type
- array of string
- Description
At most 25 items.
- Name
responseRequested- Type
- boolean
- Description
- Name
autoDecline- Type
- object
- Description
- Name
autoDecline.mode- Type
- string
- Description
One of
none,all,new.
- Name
autoDecline.message- Type
- string | null
- Description
- Name
doNotDisturb- Type
- boolean
- Description
- Name
workingLocation- Type
- WorkingLocation
- Description
- Name
source- Type
- object | null
- Description
- Name
endTimeUnspecified- Type
- boolean
- Description
- Name
privateCopy- Type
- boolean
- Description
- Name
status- Type
- string
- Description
To cancel an event, send a
DELETErequest instead. One ofconfirmed,tentative.
- Name
providerOptions- Type
- ProviderOptions
- Description
Provider-specific fields that have no equivalent in v2, grouped by provider. Each group applies only to accounts on that provider.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.VALIDATION_INVALID_TIMEZONE(400): The time zone is not an IANA time zone name.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.RESOURCE_CONFLICT(409): The resource was modified or already exists.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.VALIDATION_REJECTED_BY_PROVIDER(422): The calendar provider rejected this input.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X PATCH 'https://api.pyas.io/v2/events/sbf60c8ae6a9f17c1e3b6cc2b8?accountId=sbx_fda58c5980_1' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "title": "Product Sync (moved)", "startsAt": "2026-11-15T17:00:00Z", "endsAt": "2026-11-15T18:00:00Z"}'Response
{ "success": true, "data": { "id": "sbf60c8ae6a9f17c1e3b6cc2b8", "iCalUID": "sbf60c8ae6a9f17c1e3b6cc2b8@cal.pyas.io", "title": "Product Sync (moved)", "description": null, "location": null, "startsAt": "2026-11-15T17:00:00Z", "endsAt": "2026-11-15T18:00:00Z", "startsAtLocal": "2026-11-15T12:00:00-05:00", "endsAtLocal": "2026-11-15T13:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:24.751Z", "updatedAt": "2026-11-14T20:00:25.757Z", "version": "\"2\"", "provider": "pyas", "providerRefs": { "eventId": "sbf60c8ae6a9f17c1e3b6cc2b8", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": { "project": "atlas" } }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Delete an event
Deletes the event and cancels it for attendees. To delete it only if it hasn't changed since you read it, send its version in the If-Match header.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Required
- required
- Description
The
accountIdof the connected account.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
- Name
notifyAttendees- Type
- boolean
- Description
Whether attendees receive a cancellation notice.
- Name
message- Type
- string
- Description
A message to include with the cancellation. Outlook only, when the account is the organizer.
- Name
sendUpdates- Type
- string
- Description
The v1 name for
notifyAttendees:all,externalOnlyornone.
- Name
calendarId- Type
- string
- Description
The v1 name for
calendarRef.
Headers
- Name
If-Match- Type
- string
- Description
The event's
version(orETag). The request succeeds only if the event hasn't changed since that version. A stale version returnsRESOURCE_CONFLICT.
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.RESOURCE_CONFLICT(409): The resource was modified or already exists.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X DELETE 'https://api.pyas.io/v2/events/sb0ee767b6db44fa6f8a796921?accountId=sbx_fda58c5980_1¬ifyAttendees=false' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": null, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Import an event
Imports an event from another calendar system and keeps its iCalendar UID, organizer and sequence number. Available only on Google Calendar.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and doesn't create the event twice.
Body
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. You can send it here or in the query.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary. You can send it here or in the query.
- Name
title- Type
- string
- Required
- required
- Description
- Name
description- Type
- string
- Description
- Name
location- Type
- string
- Description
- Name
startsAt- Type
- string
- Required
- required
- Description
An ISO 8601 time with a zone, or a date such as
2026-03-15for an all-day event.
- Name
endsAt- Type
- string
- Required
- required
- Description
The end of the event. Must be later than
startsAt.
- Name
timezone- Type
- string
- Description
The IANA time zone of the event. Defaults to the calendar's time zone.
- Name
isAllDay- Type
- boolean
- Description
- Name
attendees- Type
- array of object
- Description
At most 500 items.
- Name
rooms- Type
- array of string
- Description
The email addresses of the rooms to book (see
GET /v2/rooms). On an update, send the complete list. At most 20 items.
- Name
recurrence- Type
- string
- Description
An RFC 5545 RRULE, such as
FREQ=WEEKLY;BYDAY=MO.
- Name
reminders- Type
- array of object
- Description
At most 5 items.
- Name
visibility- Type
- string
- Description
One of
default,public,private,confidential.
- Name
notifyAttendees- Type
- boolean
- Description
Whether the provider emails attendees about this change. Outlook always emails them: there,
falseisn't applied, and the response'smeta.notifyAttendeessays so.
- Name
metadata- Type
- Metadata
- Description
Your own key-value pairs, stored by Pyas with the object. A value is text, a number, a boolean or a list of those.
- Name
showAs- Type
- string
- Description
One of
busy,free,tentative,outOfOffice,workingElsewhere.
- Name
color- Type
- string
- Description
The color, as
#rrggbb. The provider uses the closest color it offers.
- Name
guests- Type
- object
- Description
- Name
guests.canModify- Type
- boolean
- Description
- Name
guests.canInviteOthers- Type
- boolean
- Description
- Name
guests.canSeeGuests- Type
- boolean
- Description
- Name
guests.canProposeTimes- Type
- boolean
- Description
- Name
importance- Type
- string
- Description
One of
low,normal,high.
- Name
categories- Type
- array of string
- Description
At most 25 items.
- Name
responseRequested- Type
- boolean
- Description
- Name
autoDecline- Type
- object
- Description
- Name
autoDecline.mode- Type
- string
- Description
One of
none,all,new.
- Name
autoDecline.message- Type
- string | null
- Description
- Name
doNotDisturb- Type
- boolean
- Description
- Name
workingLocation- Type
- WorkingLocation
- Description
- Name
source- Type
- object
- Description
- Name
source.url- Type
- string
- Required
- required
- Description
- Name
source.title- Type
- string
- Description
- Name
endTimeUnspecified- Type
- boolean
- Description
- Name
privateCopy- Type
- boolean
- Description
- Name
status- Type
- string
- Description
To cancel an event, send a
DELETErequest instead. One ofconfirmed,tentative.
- Name
providerOptions- Type
- ProviderOptions
- Description
Provider-specific fields that have no equivalent in v2, grouped by provider. Each group applies only to accounts on that provider.
- Name
eventType- Type
- string
- Description
Can be set only when creating an event, because providers don't allow it to be updated. One of
default,focusTime,outOfOffice,workingLocation,birthday.
- Name
id- Type
- string
- Description
Google Calendar only. Your own event ID, 5 to 1024 characters from a-v and 0-9.
- Name
birthday- Type
- object
- Description
- Name
birthday.type- Type
- string
- Required
- required
- Description
One of
birthday,anniversary,custom,other,self.
- Name
iCalUID- Type
- string
- Required
- required
- Description
The event's iCalendar UID, which the imported event keeps.
- Name
organizer- Type
- object
- Description
- Name
organizer.email- Type
- string
- Required
- required
- Description
- Name
organizer.name- Type
- string
- Description
- Name
sequence- Type
- integer
- Description
From 0 to 9007199254740991.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.CONNECTION_NOT_FOUND(404): No connected account was found for this request.RESOURCE_CONFLICT(409): The resource was modified or already exists.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/import' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_1", "iCalUID": "planning-2026@other-calendar.example", "title": "Planning (imported)", "startsAt": "2026-11-17T10:00:00Z", "endsAt": "2026-11-17T11:00:00Z"}'Response
{ "success": true, "data": { "id": "evt2cece5c6brq8a1b6k3ge", "iCalUID": "planning-2026@other-calendar.example", "title": "Planning (imported)", "description": null, "location": null, "startsAt": "2026-11-17T10:00:00Z", "endsAt": "2026-11-17T11:00:00Z", "startsAtLocal": "2026-11-17T05:00:00-05:00", "endsAtLocal": "2026-11-17T06:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:25.565Z", "updatedAt": "2026-11-14T20:00:25.565Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "evt2cece5c6brq8a1b6k3ge", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Create an event from text
Creates an event from a short text description, such as "Lunch with Sam Friday 1pm". The API interprets the text the same way on every provider. With dryRun, the API returns how it interpreted the text without creating the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and doesn't create the event twice.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
text- Type
- string
- Required
- required
- Description
- Name
timezone- Type
- string
- Description
The IANA time zone used to interpret the text. Defaults to the calendar's time zone.
- Name
durationMinutes- Type
- integer
- Description
The length of the event in minutes when the text doesn't include an end time. Defaults to 60. From 1 to 1440.
- Name
dryRun- Type
- boolean
- Description
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.VALIDATION_INVALID_TIMEZONE(400): The time zone is not an IANA time zone name.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.CONNECTION_NOT_FOUND(404): No connected account was found for this request.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/quick' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "accountId": "sbx_fda58c5980_1", "text": "Lunch with Sam Friday 1pm", "timezone": "America/New_York"}'Response
{ "success": true, "data": { "id": "evt0khtemav23djrva990ln", "iCalUID": "evt0khtemav23djrva990ln@cal.pyas.io", "title": "Lunch with Sam", "description": null, "location": null, "startsAt": "2026-11-19T18:00:00Z", "endsAt": "2026-11-19T19:00:00Z", "startsAtLocal": "2026-11-19T13:00:00-05:00", "endsAtLocal": "2026-11-19T14:00:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:25.590Z", "updatedAt": "2026-11-14T20:00:25.590Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "evt0khtemav23djrva990ln", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": { "parsed": { "title": "Lunch with Sam", "startsAt": "2026-11-19T18:00:00Z", "endsAt": "2026-11-19T19:00:00Z", "isAllDay": false, "timezone": "America/New_York", "matched": "Friday 1pm" } }}List an event's attachments
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl 'https://api.pyas.io/v2/events/sbff8ee84b7939a1d7a4943ff6/attachments?accountId=sbx_fda58c5980_1' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": [], "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Attach a link
Attaches a link to a file stored elsewhere. Google Calendar accepts links to Google Drive files. Outlook calendars do not support link attachments, so upload the file with /attachments/file instead.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
url- Type
- string
- Required
- required
- Description
The
httpsURL of the file.
- Name
name- Type
- string
- Description
- Name
mimeType- Type
- string
- Description
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/sbff8ee84b7939a1d7a4943ff6/attachments?accountId=sbx_fda58c5980_1' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "url": "https://example.com/agenda.pdf", "name": "Agenda.pdf", "mimeType": "application/pdf"}'Response
{ "success": true, "data": { "id": "att3j6jb64bbls3hsvo51vg", "name": "Agenda.pdf", "mimeType": "application/pdf", "size": null, "url": "https://example.com/agenda.pdf", "kind": "link" }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Forward an invitation
In the sandbox: On Google, forwarding invites the recipients, so they are added to the attendees. On Outlook, the event is emailed to the recipients, with your comment if you include one.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
recipients- Type
- array of object
- Required
- required
- Description
At most 100 items.
- Name
comment- Type
- string
- Description
A message to include with the forwarded invitation. Outlook only.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/sg314c0fd5415a58a532cd018d/forward?accountId=sbx_fda58c5980_google' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "recipients": [ { "email": "colleague@example.com" } ]}'Response
{ "success": true, "data": null, "provider": "google", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}List occurrences of a recurring event
Returns each occurrence of a recurring event within a time window as a separate event, with series set.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Required
- required
- Description
The
accountIdof the connected account.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
- Name
from- Type
- string (date-time)
- Description
The start of the time window. Required.
- Name
to- Type
- string (date-time)
- Description
The end of the time window. Required.
- Name
limit- Type
- integer
- Description
The maximum number of results in one page. Defaults to 100. From 1 to 250.
- Name
cursor- Type
- string
- Description
The
nextCursorfrom the previous page.
- Name
include- Type
- string
- Description
Additional fields to include, as a comma-separated list.
rawis the provider's original payload.extendedPropertiesis the provider's extended properties.conferencingSettingsis available only when you retrieve one event.
- Name
extendedPropertyIds- Type
- string
- Description
- Name
fields- Type
- string
- Description
The top-level fields to return, comma-separated, such as
id,title,startsAt,endsAt. Theidfield is always included.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl 'https://api.pyas.io/v2/events/sb559d0de42dffb4f183c156f8/instances?accountId=sbx_fda58c5980_1&from=2026-11-14T00%3A00%3A00Z&to=2026-11-21T00%3A00%3A00Z' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": [ { "id": "sb559d0de42dffb4f183c156f8_20261109T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-15T14:30:00Z", "endsAt": "2026-11-15T14:45:00Z", "startsAtLocal": "2026-11-15T09:30:00-05:00", "endsAtLocal": "2026-11-15T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-15T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261109T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261110T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-16T14:30:00Z", "endsAt": "2026-11-16T14:45:00Z", "startsAtLocal": "2026-11-16T09:30:00-05:00", "endsAtLocal": "2026-11-16T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-16T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261110T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261111T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-17T14:30:00Z", "endsAt": "2026-11-17T14:45:00Z", "startsAtLocal": "2026-11-17T09:30:00-05:00", "endsAtLocal": "2026-11-17T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-17T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261111T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261112T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-18T14:30:00Z", "endsAt": "2026-11-18T14:45:00Z", "startsAtLocal": "2026-11-18T09:30:00-05:00", "endsAtLocal": "2026-11-18T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-18T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261112T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, { "id": "sb559d0de42dffb4f183c156f8_20261113T143000Z", "iCalUID": "sb559d0de42dffb4f183c156f8@cal.pyas.io", "title": "Daily Standup", "description": null, "location": null, "startsAt": "2026-11-19T14:30:00Z", "endsAt": "2026-11-19T14:45:00Z", "startsAtLocal": "2026-11-19T09:30:00-05:00", "endsAtLocal": "2026-11-19T09:45:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "teammate1.1@example.com", "name": "Morgan", "response": "accepted", "optional": false, "isOrganizer": false }, { "email": "teammate2.1@example.com", "name": "Casey", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "teammate3.1@example.com", "name": "Drew", "response": "declined", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": { "provider": "meet", "joinUrl": "https://meet.google.com/sbx-4978-a3b1", "meetingId": null, "passcode": null, "dialIn": [] }, "meetingUrl": "https://meet.google.com/sbx-4978-a3b1", "recurrence": null, "series": { "masterEventId": "sb559d0de42dffb4f183c156f8", "originalStartsAt": "2026-11-19T14:30:00Z", "isException": false }, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:23.554Z", "updatedAt": "2026-11-14T20:00:23.554Z", "version": "\"1\"", "provider": "pyas", "providerRefs": { "eventId": "sb559d0de42dffb4f183c156f8_20261113T143000Z", "calendarId": "calfda58c59801p", "accountId": "sbx_fda58c5980_1" }, "metadata": null } ], "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": { "nextCursor": null }}Move an event to another calendar
Moves an event to another calendar. Outlook has no move operation, so on Outlook the event is recreated with a new ID, and the response includes meta.recreated and meta.previousId. To move an Outlook event that has attendees, send recreate: true.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
destinationCalendarRef- Type
- string
- Required
- required
- Description
- Name
notifyAttendees- Type
- boolean
- Description
- Name
recreate- Type
- boolean
- Description
Outlook only. Confirms that the event can be recreated. Attendees receive a cancellation and a new invitation.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/sbce3d2d42c2a4d690a9860fbb/move?accountId=sbx_fda58c5980_1' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "destinationCalendarRef": "calfda58c59801w"}'Response
{ "success": true, "data": { "id": "sbce3d2d42c2a4d690a9860fbb", "iCalUID": "sbce3d2d42c2a4d690a9860fbb@cal.pyas.io", "title": "Lunch with Alex", "description": null, "location": "Corner Cafe", "startsAt": "2026-11-14T17:30:00Z", "endsAt": "2026-11-14T18:30:00Z", "startsAtLocal": "2026-11-14T12:30:00-05:00", "endsAtLocal": "2026-11-14T13:30:00-05:00", "timezone": "America/New_York", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [], "rooms": [], "organizer": { "email": "calfda58c59801p@cal.pyas.io", "name": "Avery Brooks" }, "conferencing": null, "meetingUrl": null, "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "free", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": null, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:24.771Z", "updatedAt": "2026-11-14T20:00:25.616Z", "version": "\"2\"", "provider": "pyas", "providerRefs": { "eventId": "sbce3d2d42c2a4d690a9860fbb", "calendarId": "calfda58c59801w", "accountId": "sbx_fda58c5980_1" }, "metadata": null }, "provider": "pyas", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": { "recreated": false }}Respond to an invitation
Sets this account's response to an invitation: accepted, declined or tentative. You can include a comment and, on Outlook, propose a different time.
In the sandbox: Outlook accepts a proposed time with tentative or declined. On Google, the response is recorded without a proposed time. The organizer can't respond to their own event.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
response- Type
- string
- Required
- required
- Description
One of
accepted,declined,tentative.
- Name
comment- Type
- string
- Description
- Name
proposedTime- Type
- object
- Description
A different time to propose. Outlook only, with
declinedortentative.
- Name
proposedTime.startsAt- Type
- string
- Required
- required
- Description
- Name
proposedTime.endsAt- Type
- string
- Required
- required
- Description
- Name
notifyOrganizer- Type
- boolean
- Description
Whether to notify the organizer. Defaults to
true.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/AAMkAaqP10JDPp4BdGjaZyg2dF63m6W8eIe6XhxRsmKdLG38AAA%3D/respond?accountId=sbx_fda58c5980_outlook' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "response": "tentative", "comment": "Could we do later in the day?", "proposedTime": { "startsAt": "2026-11-16T16:00:00Z", "endsAt": "2026-11-16T17:00:00Z" }}'Response
{ "success": true, "data": { "id": "AAMkAaqP10JDPp4BdGjaZyg2dF63m6W8eIe6XhxRsmKdLG38AAA=", "iCalUID": "040000008200E00074C5B7101A82E008692EB216F94CCB328CF8D509CF2E22779026B52F5F94CC7ACE760D0B", "title": "Vendor demo", "description": null, "location": null, "startsAt": "2026-11-16T15:00:00Z", "endsAt": "2026-11-16T16:00:00Z", "startsAtLocal": "2026-11-16T15:00:00+00:00", "endsAtLocal": "2026-11-16T16:00:00+00:00", "timezone": "Europe/London", "isAllDay": false, "status": "confirmed", "visibility": null, "attendees": [ { "email": "sam.patel@example.org", "name": "Sam Patel", "response": "tentative", "optional": false, "isOrganizer": false }, { "email": "jordan.lee@example.org", "name": "Jordan Lee", "response": "tentative", "optional": false, "isOrganizer": false } ], "rooms": [], "organizer": { "email": "riley.chen@example.org", "name": "Riley Chen" }, "conferencing": { "provider": "teams", "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_9PnbW93DKzErExDGHH4VYkdBB4uPoz6z%40thread.v2/0", "meetingId": "354 292 634 861", "passcode": "RMXPxx", "dialIn": [ { "label": "Toll", "number": "+1 555-0101", "pin": "769655823" } ] }, "meetingUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_9PnbW93DKzErExDGHH4VYkdBB4uPoz6z%40thread.v2/0", "recurrence": null, "series": null, "reminders": [], "attachments": [], "showAs": "busy", "eventType": "default", "color": null, "guests": { "canModify": false, "canInviteOthers": true, "canSeeGuests": true, "canProposeTimes": true }, "importance": null, "categories": [], "responseRequested": true, "autoDecline": null, "doNotDisturb": null, "workingLocation": null, "birthday": null, "source": null, "endTimeUnspecified": null, "privateCopy": null, "createdAt": "2026-11-14T20:00:25.447Z", "updatedAt": "2026-11-14T20:00:25.604Z", "version": "\"2\"", "provider": "microsoft", "providerRefs": { "eventId": "AAMkAaqP10JDPp4BdGjaZyg2dF63m6W8eIe6XhxRsmKdLG38AAA=", "calendarId": "AAMkAU662pGNAu0JgQ5Fpjf1wipv7j82pYQuBvDbbTPOq8h4AAA=", "accountId": "sbx_fda58c5980_outlook" }, "metadata": null }, "provider": "microsoft", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Delete an attachment
In the sandbox: Use an ID from GET /v2/events/{eventId}/attachments. Deleting an attachment that no longer exists also returns 200, on every provider.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
- Name
attachmentId- Type
- string
- Required
- required
- Description
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X DELETE 'https://api.pyas.io/v2/events/sg314c0fd5415a58a532cd018d/attachments/1tTOPj3dD9zJTxnuHOHkvShgQGzYdlWUb?accountId=sbx_fda58c5980_google' \ -H "x-api-key: $PYAS_API_KEY"Response
{ "success": true, "data": null, "provider": "google", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Upload a file to an event
Uploads a file and attaches it to the event. Send the file as the request body with its own Content-Type. Send JSON files as application/octet-stream with ?contentType=. With a Content-Length header, the file is streamed to the provider. On Google Calendar, the file is stored in Google Drive. Files can be up to 25 MB. The account status shows the limit in capabilities.maxAttachmentBytes. For a larger file, attach a link instead.
In the sandbox: Outlook stores the file on the event. Google uploads it to the person's Google Drive and attaches it. The sandbox stores files up to 4 MB.
This endpoint accepts a file upload. Send it from your code or with cURL.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
- Name
name- Type
- string
- Required
- required
- Description
The file name.
- Name
contentType- Type
- string
- Description
The file's media type, when the request's own
Content-Typecan't specify it.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_PAYLOAD_TOO_LARGE(413): The request body exceeds the size limit for this endpoint.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/AAMkABPQiivgqLU9tm9fMz97PHOQGGb0wy-xR-Eg22SuOCP8AAA%3D/attachments/file?accountId=sbx_fda58c5980_outlook&name=notes.txt' \ -H "x-api-key: $PYAS_API_KEY" \ -F "file=@agenda.pdf"Response
{ "success": true, "data": { "id": "AAMkAdMhPAQjkB4bvKK-QcQsbZhkMIgklLZqpoVA-IeLqlhIAAA=", "name": "notes.txt", "mimeType": "application/octet-stream", "size": 28, "url": null, "kind": "file" }, "provider": "microsoft", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Dismiss a reminder
Dismisses the event's reminder. Outlook only.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/AAMkABPQiivgqLU9tm9fMz97PHOQGGb0wy-xR-Eg22SuOCP8AAA%3D/reminder/dismiss?accountId=sbx_fda58c5980_outlook' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{}'Response
{ "success": true, "data": null, "provider": "microsoft", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Snooze a reminder
Shows the reminder again at a later time. Outlook only.
In the sandbox: Reminder state is available only on Outlook. For Google accounts, the API returns an error, because Google's API doesn't store reminder state.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Headers
- Name
Idempotency-Key- Type
- string
- Description
A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.
Body
- Name
accountId- Type
- string
- Description
- Name
calendarRef- Type
- string
- Description
- Name
until- Type
- string (date-time)
- Required
- required
- Description
When to show the reminder again, as a future ISO 8601 time with a zone.
Errors
VALIDATION_INVALID_BODY(400): The request body is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl -X POST 'https://api.pyas.io/v2/events/AAMkABPQiivgqLU9tm9fMz97PHOQGGb0wy-xR-Eg22SuOCP8AAA%3D/reminder/snooze?accountId=sbx_fda58c5980_outlook' \ -H "x-api-key: $PYAS_API_KEY" \ -H "content-type: application/json" \ -d '{ "until": "2026-11-15T09:55:00Z"}'Response
{ "success": true, "data": null, "provider": "microsoft", "traceId": "trc_5f2a9c1e7b3d4a6f8e0c2b1d", "meta": {}}Download an attachment
Returns the file contents of an Outlook attachment. For Google Drive files and links, responds with 303 See Other and the file's location.
In the sandbox: A file on an Outlook event is returned as its bytes. A link or a Google Drive file is returned as a redirect to its location.
Path parameters
- Name
eventId- Type
- string
- Required
- required
- Description
The ID of the event.
- Name
attachmentId- Type
- string
- Required
- required
- Description
Query parameters
- Name
accountId- Type
- string
- Description
The
accountIdof the connected account. Required here or in the request body of a write.
- Name
calendarRef- Type
- string
- Description
The calendar to use. Defaults to
primary.
Errors
VALIDATION_INVALID_QUERY(400): A query parameter is not valid.AUTH_INVALID_KEY(401): The API key is missing, unknown or revoked.AUTH_EXPIRED_KEY(401): The API key has expired.AUTH_INSUFFICIENT_SCOPE(403): The API key or session does not have permission to make this request.RESOURCE_NOT_FOUND(404): The calendar or event was not found.CONNECTION_NOT_FOUND(404): No connected account was found for this request.VALIDATION_UNSUPPORTED_OPERATION(422): This provider does not support this operation.CONNECTION_REVOKED(422): The user revoked access, or the provider no longer accepts the stored credentials.CONNECTION_TOKEN_EXPIRED(422): The provider's access token expired and could not be refreshed.CONNECTION_SCOPE_INSUFFICIENT(422): The connected account did not grant a permission that this operation requires.PROVIDER_RATE_LIMITED(429): The calendar provider is rate limiting requests for this account.RATE_LIMIT_EXCEEDED(429): The request rate exceeds this plan's rate limit.RATE_LIMIT_BURST(429): Too many requests were sent in a short period.INTERNAL_ERROR(500): Something went wrong on our end.PROVIDER_UNAVAILABLE(503): The calendar provider is not responding normally.PROVIDER_TIMEOUT(504): The calendar provider did not respond in time.
Request
curl 'https://api.pyas.io/v2/events/AAMkABPQiivgqLU9tm9fMz97PHOQGGb0wy-xR-Eg22SuOCP8AAA%3D/attachments/AAMkArXFqduOUNsr8qIMCtJ66XOMYtyB4ZLBHoqtmM72Np-gAAA%3D/content?accountId=sbx_fda58c5980_outlook' \ -H "x-api-key: $PYAS_API_KEY"