Skip to main content
POST
/
api
/
spaces
/
coworkergooglecalendars
Create CoworkerGoogleCalendar
curl --request POST \
  --url https://spaces.nexudus.com/api/spaces/coworkergooglecalendars \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "ResourceId": 123,
  "Name": "<string>",
  "SubscriptionId": "<string>",
  "CalendarId": "<string>",
  "SubscriptionExpireDate": "<string>",
  "WatchResourceId": "<string>"
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A CoworkerGoogleCalendar record represents a Google Calendar account connected to a customer’s Nexudus account. These records are created automatically when a customer connects their own Google Calendar from the Members Portal or the Nexudus app. Once connected, customers can book resources at a location directly from their Google Calendar. Each record stores the Google push-notification subscription details (SubscriptionId, WatchResourceId, SubscriptionExpireDate) used to keep the calendar in sync, as well as an EventSyncToken for incremental Google Calendar API event queries. For more information, see the Google Calendar (Customer) help article.

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the CoworkerGoogleCalendar-Create role.

Request Body

Required Fields

ResourceId
integer
required
ID of the Nexudus resource (room or desk) used as the Google Calendar push-notification watch target for this connection.
Name
string
required
Display name of the connected Google Calendar.
SubscriptionId
string
required
Google push-notification channel ID used to receive calendar change notifications.
CalendarId
string
required
Google Calendar ID of the customer’s connected calendar (e.g. user@gmail.com or a secondary calendar ID).
SubscriptionExpireDate
string
required
Date and time when the Google push-notification channel subscription expires and must be renewed.
WatchResourceId
string
required
Google-assigned resource ID for the active push-notification watch channel.

Optional Fields

CoworkerId
integer
ID of the customer who connected their Google Calendar.
EventSyncToken
string
Incremental sync token returned by the Google Calendar API, used to fetch only events changed since the last sync.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/spaces/coworkergooglecalendars" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ResourceId": 0,
    "Name": "",
    "SubscriptionId": "",
    "CalendarId": "",
    "SubscriptionExpireDate": "2025-01-15T10:30:00Z",
    "WatchResourceId": ""
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the coworkergooglecalendar was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "CoworkerGoogleCalendar was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Name: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Name"
    }
  ],
  "WasSuccessful": false
}