API Documentation

ScheduCal enables scheduling software developers to send, update, and cancel real calendar invitations instead of emails with ICS files.

Endpoint and API authentication

When you register, you are provided with an API key and secret as well as the REST API endpoint. The endpoint and key will never change. The API secret can be regenerated upon request.

Dates and time zones

Dates are required to be in full ISO 8601 UTC format. Both dates and times are required. Seconds may be supplied as :00 and are required. (e. g. “YYY-MM-DDThh:mm:ss”) Azure limits the time zone identifiers that can be used for events. Only the time zones in this list are supported.

Names and email addresses

Names and email addresses are optional when an event is initially created. For example, a webinar event or a session at a conference can be created and then attendees can be added later when they register.

API calls

Create

Creates a new event, sends it to the attendee (if provided), and returns a unique ID for that event. Use this ID to modify or cancel the event.

<endpoint>/Create
{
          "apiKey": "<api key>",
          "apiSecret": "<api secret>",
          "eventSubject": "string (e.g. 'Haircut'), Email subject of calendar invitation",
          "eventBody": "string (e.g. '30-minute haircut with Casey'), Email body of calendar invitation",
          "eventStart": "dateTime (e.g. '2024-01-09T13:00:00')",
          "eventTimeZone": "time zone (e.g. 'America/Phoenix')",
          "eventEnd": "time (e.g. '2023-04-09T13:15:00')",
          "eventLocation": "string (optional) (e.g. 'ScheduCal Salon')",
          "name": "string (optional) (e.g. 'First Last')",
          "address": "(optional) string (e.g. 'name@domain.com')"
        }

Update

Updates selected information on an existing event and sends the update to all invitees.

<endpoint>/Update
{
          "apiKey": "<api key>",
          "apiSecret": "<api secret>",
          "eventId": string "<event token>",
          "eventSubject": string (e.g. "Haircut"), Email subject of calendar invitation
          "eventBody": string (e.g. "30-minute haircut with Casey"), Email body of calendar invitation 
          "eventStart": dateTime (e.g. "2024-01-09T13:00:00"),
          "eventTimeZone": time zone (e.g. "America/Phoenix"),
          "eventEnd": time (e.g. "2023-04-09T13:15:00"),
          "eventLocation": string (optional) (e.g. "ScheduCal Salon"),
        }

Cancel

Sends a cancelation to all invitees for this event and deactivates it.

<endpoint>Cancel
{
          "apiKey": "<api key>",
          "apiSecret": "<api secret>",
          "eventId": string "<event token>",
          "comment": string (e.g. "Had a conflict") reason for cancellation
        }

Invite

Adds an invitee to the event, such as adding another attendee to a webinar.

<endpoint>Invite
{
          "apiKey": "<api key>",
          "apiSecret": "<api secret>",
          "eventId": string "<event token>",
          "name": string (optional) (e.g. "First Last"),
          "address": string (e.g. "name@domain.com")
        }