NAV

API Overview

Welcome to the GReminders API. The GReminders API has 3 parts:

For the REST API the system uses a OAuth2 implementation for Authentication.

Any breaking changes made to the API will result in a new version of the API. Currently we are on version 1.

If you don't see an endpoint that you need please contact [email protected] and share your Need and Use Case.

Embed Booking Widget

The Embed Booking Widget is an easier to use integration that allows you to embed your scheduling/booking pages into your Website, Blog, Wordpress, Wix, Shopify, etc...

Basic HTML IFrame

Basic Example HTML

<iframe src="XXXXXX" style="border: none; width: 100%; height: 800px; overflow: scroll;" allowfullscreen></iframe>

Or a simple HTML Popup Example

<a href="#" onclick="window.open('XXXXXX','greminders','width=600,height=400');">Book with me</a>

There is a basic HTML IFrame Version. You can adjust the height or width using the style element or CSS classes.

You need to replace XXX with YOUR "My Link" which looks something like: https://app.greminders.com/c/myshortname

You can get the "My Link" by logging into GReminders and going to Share My Link or Copy a specific Event Type Link. This works also with Routing Forms. Replace your Link with the Routing form URL.

Example: https://app.greminders.com/c/myshortname/?show_header=false&utm_source=facebook&first_name=Michael

You can also pass in Optional Parameters to prepopulate or manipulate the embedded form:

Parameter Description
show_header true or false, Show or hide header on booking page
remember_me true or false, Show or hide Remember Me checkbox
first_name First Name of Invitee
last_name Last Name of Invitee
email Email of Invitee
phone Phone of Invitee
address Address of Invitee
c_fav_color Example of Custom Question, API Name
utm_source UTM Source - Google Analytics Tag
utm_medium UTM Medium - Google Analytics Tag
utm_campaign UTM Campaign - Google Analytics Tag
utm_content UTM Content - Google Analytics Tag
utm_term UTM Term - Google Analytics Tag

You can also "front" this form with another "Form Builder" such as Jotform or similar and pass parameters into the GReminders form. Read More Here

If you need help please reach out to [email protected].

Javascript Modal

Example HTML/Javascript

<script src="https://app.greminders.com/widgets/booking.js"></script>
<script type="text/javascript">
window.onload = function() {
    GReminders.BookingWidget.initialize(
        //create an event type and put the link below: https://app.greminders.com/event-types
        //or use with Routing Forms: https://app.greminders.com/routing-forms
        'https://app.greminders.com/YOURLINK',

        //here are all the options
        {
            // you can trigger this based on a button or some other action
            anchorEl: document.getElementById('schedule_button'),  //you can omit this line completely if you like and just use: GReminders.BookingWidget.open(); in your code

            fields: {
                first_name: 'Michael',            // you can prepopulate the fields here if you already have this information
                last_name: 'Scott',
                phone: '9495556666',
                email: '[email protected]',
                c_fav_color: 'blue',              // populate custom questions/fields as well: https://app.greminders.com/admin/custom-questions
                auto_submit: false,               // to auto submit the form set this true, default is false, note the form must pass validation
                remember_me: true,                // shows the remember me checkbox.   If you dont want to show the checkbox or disable remember set this to false

                // UTM Codes (optional)
                utm_source: 'newsletter',         // UTM codes you can pass through  (optional)
                utm_medium: 'email',              // UTM codes are Google Marketing "utm" codes  (optional)
                utm_campaign: 'product_launch',   // they help you track marketing sources and help with attribution
                utm_content: 'bottom_cta',        // totally optional to use
                utm_term: 'new_users'             // more UTMs
            },
            styles: {
                zIndex: 100                       // Default z-index for the widget is 1000
            }
        }
    );
    GReminders.BookingWidget.onSuccess(function(event_id, form_data) {
        //we automatically close the widget on successful booking, you can continue your flow here
        GReminders.BookingWidget.close();
        alert('Success! Event ID ' + event_id + ', Customer Form Data: ' + JSON.stringify(form_data));
    });
    GReminders.BookingWidget.onError(function(message) {
        //if we encounter a booking error you can trigger a different error or retry
        GReminders.BookingWidget.close();
        alert('Error! ' + message);
    });

    // or trigger the widget using this:
    // GReminders.BookingWidget.open();
};
</script>

<input type="button" id="schedule_button" value="Schedule With Me" />

<!-- example to trigger via button onclick event -->
<input type="button" value="Schedule With Me using OnClick" onclick="GReminders.BookingWidget.open();" />

Or a more advanced Javascript Version that renders in a Modal / Lightbox. This allows you to embed this as part of your intake workflow or similar and receive Javascript Callbacks on form completion, errors, etc...

Popup Javascript Modal Example

Javascript Inline

Example HTML/Javascript

<script src="https://app.greminders.com/widgets/booking-inline.js"></script>
<script type="text/javascript">
window.onload = function() {
    GReminders.BookingWidgetInline.initialize(
        //create an event type and put the link below: https://app.greminders.com/event-types
        //or use with Routing Forms: https://app.greminders.com/routing-forms
        'https://app.greminders.com/YOURLINK',

        //this is your HTML ID element
        document.getElementById('gr-widget-container'),

        //here are all the options
        {
            fields: {
                first_name: 'Michael',            // you can prepopulate the fields here if you already have this information
                last_name: 'Scott',
                phone: '9495556666',
                email: '[email protected]',
                c_fav_color: 'blue',              // populate custom questions/fields as well: https://app.greminders.com/admin/custom-questions
                auto_submit: false,               // to auto submit the form set this true, default is false, note the form must pass validation
                remember_me: true,                // shows the remember me checkbox.   If you dont want to show the checkbox or disable remember set this to false

                // UTM Codes (optional)
                utm_source: 'newsletter',         // UTM codes you can pass through  (optional)
                utm_medium: 'email',              // UTM codes are Google Marketing "utm" codes  (optional)
                utm_campaign: 'product_launch',   // they help you track marketing sources and help with attribution
                utm_content: 'bottom_cta',        // totally optional to use
                utm_term: 'new_users'             // more UTMs
            }
        }
    );
    GReminders.BookingWidgetInline.onSuccess(function(event_id, form_data) {
        //you can continue your flow here
        alert('Success! Event ID ' + event_id + ', Customer Form Data: ' + JSON.stringify(form_data));
    });
    GReminders.BookingWidgetInline.onError(function(message) {
        //if we encounter a booking error you can trigger a different error or retry
        alert('Error! ' + message);
    });
};
</script>

<!-- Inline widget container -->
<div id="gr-widget-container" style="width: 800px; height: 600px;"></div>

Or you can "Inline" the advanced Javascript Version that renders in an IFrame. This allows you to embed this as part of your intake workflow or similar and receive Javascript Callbacks on form completion, errors, etc...

Inline Javascript Example

Webhooks Overview

Webhooks allow developers to trigger actions off things that happen in GReminders. Webhooks are triggered for New Bookings, Reschedules, Cancellations and Event Confirmations, and also other Objects. This guide introduces how webhooks work, including how to configure a webhook for your app and manage webhooks. Webhooks can also be used with Low Code Workflow applications such as Zapier, IFTTT, etc...

Concepts

Webhook: A single event message. GReminders sends a webhook to an Webhook receiving endpoint URL. A webhook contains a JSON payload in the body, and metadata in the headers.

object: type of the object that triggers an webhook event. Could be event, event_type, user and/or notification.

change_type: This reflects the type of callback you're receiving. Could be created, updated or deleted. Also, you may encounter url_verification during the configuration process.

Webhook subscription: A persisted data object, which defines the object and the change_type that the app wants to receive.

A webhook receiving endpoint URL is where GReminders sends webhooks for the specified object and change_type.

Payload

Webhook payload structure:

{
    "object": "event",
    "change_type": "created",
    "data": {
        ...
    }
}

Each webhook sent by GReminders has the same structure

Parameter Description
object string Type of the object that triggers an webhook event
change_type string Change Type of callback (created, updated, etc...)
data one of Api Object data representing object

Headers

In addition to the message payload, each webhook message has a predefined set of HTTP headers containing metadata.

HTTP Header Use
X-Greminders-Api-Version Version of the Webhook API
X-Greminders-Request-Timestamp UNIX Timestamp of the request
X-Greminders-Signature Used for verification of the request
X-Greminders-Retry-Num Indicates the delivery retry attempt number: 1, 2, or 3.
X-Greminders-Retry-Reason Describes why the request was retried

Delivery Retries

GReminders will try to deliver a failed request up to 3 times in a gradually increasing timetable. We'll tell you why we're retrying the request in the X-Greminders-Retry-Reason HTTP header. Possible values are:

Working with Webhooks

Webhook Subscription

To create webhook subscription follow next steps:

Verification of Receiving Endpoint URL

We'll dispatch a HTTP POST containing following body to your request URL:

{
    "change_type": "url_verification",
    "verification_key": "85cfdbc3dab3d0124aad1158b90b9fa745a1a00a4d15eea85f7d8db2ffc81400"
}

To ensure that webhooks are being delivered to a server under your control, GReminders must verify your ownership by sending you a url_verification request. You'll automatically receive url_verification request whenever configuring an Webhook Receiving Endpoint URL.

Once you receive the url_verification request, verify it and then respond in plaintext with the verification_key attribute value:

HTTP 200 OK
85cfdbc3dab3d0124aad1158b90b9fa745a1a00a4d15eea85f7d8db2ffc81400

Receive the Webhook

After you register an endpoint, GReminders sends an HTTP POST request to the URL specified every time that event occurs. The HTTP POST request parameters contain the JSON data relevant to the event that triggered the request.

Verify the Webhook (Optional)

The following example uses pseudocode to verify a webhook request

PHP Example


function verifyRequest(): bool {
    $request = getRequest();

    $signing_secret   = 'YOURSIGNINGSECRETHERE';
    $requestSignature = $request->headers('X-Greminders-Signature');
    $timestamp        = $request->headers('X-Greminders-Request-Timestamp');
    $body             = $request->getBody();

    $calculatedSignature = hash_hmac('sha256', "$timestamp:$body", $signing_secret);

    return ($requestSignature === $calculatedSignature);
}

Python Example

def validate_webhook():
  verified: bool = False

  # We use request.get_data().decode("utf-8-sig") to remove BOM from the start of the string
  body = request.get_data().decode("utf-8-sig")

  signature: str = headers.get(GREMINDER_SIGNATURE_HEADER)
  timestamp = headers.get(GREMINDER_TIMESTAMP_HEADER)
  secret: str = self.__get_greminder_signing_secret()
  if (secret is None):
      CallContext.get_current().log_error(
          message="No Signature")

  if GeneralUtility.is_null_or_empty(signature) or \
     GeneralUtility.is_null_or_empty(timestamp):
      return verified

  message = "{}:{}".format(timestamp, body)

  calculated_signature = hmac.new(key=bytes(secret, encoding='utf-8'),
                                  msg=bytes(message, 'utf-8'),
                                  digestmod=hashlib.sha256).hexdigest().lower()

  if signature == calculated_signature:
      verified = True

  return verified

C# Example

app.MapPost("/webhook",async delegate(HttpContext context) {
    using (StreamReader reader = new StreamReader(context.Request.Body, Encoding.UTF8))
    {
        var signature = context.Request.Headers["X-Greminders-Signature"];
        var timestamp = context.Request.Headers["X-Greminders-Request-Timestamp"];
        var signingSecret = "4d7df8f838cffac21219a7b74a77c3c2a6f1927c341c1b0d800296f5b772565a";
        var body = await reader.ReadToEndAsync();
        var hmacSha256 = new HMACSHA256(Encoding.UTF8.GetBytes(signingSecret));
        var hash = hmacSha256.ComputeHash(Encoding.UTF8.GetBytes($"{timestamp}:{body}"));
        var controlSignature = Convert.ToHexString(hash).ToLower();
        if (signature == controlSignature)
        {
            Console.WriteLine("verified");
        }
        else
        {
            Console.WriteLine("not verified");
        }
    }
});

Before you respond to a webhook, you need to verify that the webhook was sent from GReminders. You can verify the webhook by calculating a digital signature and comparing it to the value of the X-Greminders-Signature HTTP header.

Respond to the webhook

Your webhook acknowledges that it received data by sending a 200 OK response.

OAuth2

Before you can start using OAuth2 in your application, you need to register it. In your GReminders account go to ORG SETTINGS -> API section of the site.

You need to create a new OAuth Application:

This will also generate a Client ID and Secret. Keep these in a safe place.

Each API request should be authorized with Bearer Token / Access Token in the Authorization header, like so:

Authorization: Bearer eyJ0eXAiOiJKV1QiLC...

Authorize

First you need to go through the authorization process, for this use the following URL.

https://app.greminders.com/api/oauth/authorize

Example

GET https://app.greminders.com/api/oauth/authorize?response_type=code&scope=full-access&client_id=<CLIENT_ID>&r=<REDIRECT_URL>

Required query parameters

Parameter Description
response_type string Only the "code" type is supported
scope string "full-access" is the only scope available in current version
client_id string Client ID of the registered application
r string Redirect URL to which the authorization code is returned

After after successful login the user will be redirected to the page specified in the redirect URL along with the authorization code

{your_redirect_url}?code=your_authorization_code

Helper Tool / Token

As a "Helper" we have given you the ability to generate a Refresh and Access token for your logged in user in the GReminders API Web Interface. This is only meant to be used temporarily to test the API via Postman or some other test harness without having to implement a whole OAuth2 flow.

Get the Access Token

The application must then request an access token using the authorization code given on the previous step. To do this, you need to send a POST resquest to the following URL.

https://app.greminders.com/api/oauth/access-token

Required body parameters

Parameter Description
grant_type string The value "authorization_code" is used for this parameter
client_id string Client ID of the registered application
client_secret string Client secret of the registered application
code string The code that was received after the authorization step

In response, you should receive the Access Token in JSON format.

{
    "token_type": "Bearer",
    "expires_in": 7200,
    "access_token": "eyJ0eXAiOiJKV1QiLCJ...",
    "refresh_token": "def50200790340dc2a7..."
}
Parameter Description
token_type string Type of token
expires_in string Token lifetime, in seconds
access_token string The value of the access token
refresh_token string The refresh token value, used to obtain a new access token

Response codes

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly

Get new Access Token using Refresh Token

To refresh your expired Access Token send a POST requst to the following URL. Please Note, when you get a new Access Token you will also receive a NEW Refresh Token. Use this NEW Refresh token to get a new Access Token. The old Refresh token will be invalidated.

https://app.greminders.com/api/oauth/access-token

Required body parameters

Parameter Description
grant_type string The value "refresh_token" is used for this parameter
client_id string Client ID of the registered application
client_secret string Client secret of the registered application
refresh_token string Refresh token value

In response, you should receive new Access Token in JSON format.

{
    "token_type": "Bearer",
    "expires_in": 7200,
    "access_token": "eyJ0eXAiOiJKV1QiLC...",
    "refresh_token": "def50200640780cf3..."
}

Response codes

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly

Impersonation

Example

X-GReminders-Impersonation-ID: <UUID>

If the user you are authorized as has Administrator Permissions in GReminders, you can use the impersonation mechanism to perform actions on behalf of other Users in your Organization. To do so, you can supply a X-GReminders-Impersonation-ID header with the ID of the User you want to impersonate with each API request.

In this case the API will return your requests as if impersonated User is making them.

Error Codes

Example:

{
    "code": 429,
    "error": "throttled",
    "message": "You are hitting the API too frequently, please back off.",
    "hint": "You can make 120 API requests per minute, otherwise you will be throttled.  Thanks."
}

Error Codes you may encounter that you should account for:

HTTP Error Code Description
400 Bad Request, query string malformed or similar
401 Unauthorized, Access Token is bad/missing
404 Resource Not Found, most likely the resource you are trying to access doesn't exist
429 You are bring throttled, back off your requests, try again shortly
500 Server Error, something bad happened, contact [email protected] if this persists
503 Site Unavailable, most likely platform undergoing maintenance, try again shortly

API Objects

Calendar

Each User has one or more Calendars.

Example:

{
  "id": "76a7d63f-a0c8-4844-85d1-d32b1b811041",
  "provider": "google",
  "name": "Michaels Calendar",
  "external_id": "[email protected]",
  "timezone": "America/Los_Angeles",
  "color": "#9fe1e7",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "active": true,
  "main": true,
  "primary": true,
  "created_date": "2023-01-05T16:18:34+00:00",
  "updated_date": "2023-01-17T10:29:21+00:00",
  "read_only": false,
  "send_reminders": true,
  "check_default_availability": true
}
Parameter Description
id uuid Internal ID
provider string Internal provider name (google, microsoft, redtail, etc...)
name string Name of Calendar
external_id string ID of the External Calendar (from Google, Microsoft, etc...)
timezone string Time Zone of Calendar in IANA Time Zone format
color string The color with which the calendar is displayed, HEX format with the #
user_id uuid Internal User ID
company_id uuid Internal Company ID
active bool Is this Calendar Active for this User?
main bool Is this the Main Calendar from the Provider Calendar?
primary bool Is this the Primary Calendar for this User
created_date date Date & Time Calendar was created in GReminders, ISO8601 format
updated_date date Date & Time Calendar was last updated in GReminders, ISO8601 format
read_only bool Is Calendar Read Only?
send_reminders bool Should GReminders send Reminder Notifications on this Calendar?
check_default_availability bool Check default availability Flag

Event

Events belong to a Calendar

Example:

{
  "id": "f8ab3fb9-8122-4753-9823-592a401e73ff",
  "external_id": "26jkvg7t3sp1ugmkd72tih91hk",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "event_type_id": null,
  "url": "https://app.greminders.com/event/2142ba19-64a3-4109-9e60-64f47d9bcb49",
  "weburl": "https://www.google.com/calendar/event?eid=MjZqa3ZnN3Qzc3AxdWdta2Q3MnRpaDkxaGsgbG9wYXRpbnNreXN2LnNkYWlAbQ",
  "reschedule_url": "https://www.greminders.com/r/TDL7xW",
  "cancel_url": "https://www.greminders.com/c/TDL7xW",
  "location": "https://meet.google.com/utd-yois-fsp",
  "body": "Review your Paper Needs",
  "name": "Demo Meeting with Dunder Mifflin",
  "status": "confirmed",
  "disposition": null,
  "freebusy": "busy",
  "provider": "google",
  "timezone": "America/Los_Angeles",
  "categories": [
    "Blueberry"
  ],
  "origination_date": "2022-07-07T02:16:35-07:00",
  "start_date": "2022-07-07T23:30:00-07:00",
  "end_date": "2022-07-08T00:00:00-07:00",
  "created_date": "2022-07-07T02:16:35-07:00",
  "updated_date": "2022-07-07T09:16:57+00:00",
  "is_organizer": true,
  "reply_status": null,
  "all_day_event": false,
  "client_timezone": "America/Los_Angeles",
  "meeting_type": "Demo",
  "disposition": "completed",
  "meeting_urls": [
    {
      "url": "https://meet.google.com/utd-yois-fsp",
      "provider": "google_meet"
    }
  ],
  "organizer": {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
  },
  "registrants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    }
  ],
  "participants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    },
    {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
    }
  ]
}
Parameter Description
id uuid Internal ID
external_id string ID of the External Event (from Google, Microsoft, etc...) Could be used to match up the Event against the Source Provider.
user_id uuid Internal User ID
calendar_id uuid Internal Calendar ID
event_type_id uuid Internal Event Type ID
url string GReminders Web UI URL
weburl string External Event Provider URL (Link to the Google, Microsoft, etc... Event)
reschedule_url string Public URL to be used for client rescheduling
cancel_url string Public URL to be used for client cancellations
location string Location of the Event
body string Description of the Event
name string Title/Subject of the Event
status string Status of the Source Event (confirmed, tentative, cancelled) If event is "cancelled" it has been deleted from the source calendar
disposition string Disposition of the Event (completed, no_show)
freebusy string "free" or "busy", if busy the event is not considered as part of the availability check
provider string Source Provider of the Event (google, microsoft, etc...)
timezone string Time Zone of Event in IANA Time Zone format
client_timezone string Client Time Zone of Event in IANA Time Zone format See Article
meeting_type string Custom Question reserved by the system - "meeting type" and assigned to this event.
reply_status string Internal Reply State (confirmed,rescheduling,optout,cancelled) GReminders Event Status. Result of client replies to notifications.
is_organizer bool This user is the Organizer of this Meeting
all_day_event bool This event is an all day event
categories array Categories of this Event from Source Event/Calendar (for Google caledar this is Colors)
origination_date date Original Date the Event was created on the Source Calendar, ISO8601 format
start_date date Start Date & Time of the Event, ISO8601 format
end_date date End Date & Time of the Event, ISO8601 format
created_date date Date & Time Event was created in GReminders, ISO8601 format
updated_date date Date & Time Event was last updated in GReminders, ISO8601 format
meeting_urls array of Meeting Url
organizer Registrant Organizer of the Meeting
participants array of Registrant List of People that are ON the Event Invitation List.
registrants Registrant List of People who Registered for the Event via GReminders. In most cases this is one registrant, for Group Events this may contain more than one registrant.
payment array Payment information if Event took Payment (this is handled at the Event level IF this is Not a Group Event), for Group Events please use the payment attribute on the Registrants Object, as multiple people can pay for the same Event.

Registrant

Registrants belong to Events and are part of the Event Object Model

Example:

{
  "id": "30667c42-05f4-416e-9698-1e1839fb951d",
  "role": "participant",
  "email": "[email protected]",
  "phone": "17145557777",
  "status": "registered",
  "internal": false,
  "timezone": "America/Los_Angeles",
  "last_name": "Meyers",
  "questions": [
    {
      "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
      "label": "What is your Birth Date?",
      "value": "1970-02-15",
      "api_name": "c_birth_date",
      "data_type": "date"
    },
    {
      "key": "02625750-ec63-43bc-92ad-523340d8c26d",
      "label": "Company Name",
      "value": "Office Depot",
      "api_name": "c_company_name",
      "data_type": "text"
    }
  ],
  "cancel_url": "https://www.greminders.com/c/BgIzRz",
  "first_name": "Larry",
  "confirm_url": "https://www.greminders.com/f/BgIzRz",
  "created_date": "2022-07-07T02:49:06-07:00",
  "source_email": "eventregistration",
  "source_phone": null,
  "updated_date": "2022-07-07T02:50:21-07:00",
  "external_role": "recipient",
  "reschedule_url": "https://www.greminders.com/r/BgIzRz",
  "payment": {
    "amount": 50,
    "currency": "USD",
    "provider": "stripe",
    "card_brand": "visa",
    "discount_code": null,
    "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
    "card_holder_name": "Larry Meyers",
    "card_last4digits": "1111"
  }
}
Parameter Description
id uuid Internal Registrant ID
first_name string First Name
last_name string Last Name
email string Email
phone string Phone Number in E.164 Format
role string Internal Role (organizer
external_role string Role as defined by the External Calendar Event (sender,recipient,required,optional)
status string Internal Status (registered,pending,confirmed,cancelled)
internal bool Is this an Internal User (GReminders calculated)
timezone string Time Zone of Registrant in IANA Time Zone format
confirm_url string Public Confirmation URL
reschedule_url string Public Reschedule URL
cancel_url string Cancellation URL
questions array of Question Custom Questions/Answers
source_email string Provider Source of the Email (where the email address was first found)
source_phone string Provider Source of the Phone Number (where the phone number was first found)
created_date date Date & Time User was created, ISO8601 format
updated_date date Date & Time User was last modified, ISO8601 format
payment object Payment made by Registrant if used

Meeting Url

Meeting Urls belong to Events and are part of the Event Object Model

Example:

{
  "provider": "google_meet",
  "url": "http://meetingurl"

}
Parameter Description
provider string Provider Name (zoom, google_meet, etc...)
url string URL of the Web Meeting

Question

Questions belong to Registrants and are part of the Event/Registrant Object Model

Example:

{
  "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
  "api_name": "c_fav_color",
  "label": "What is your favorite Color?",
  "value": "Green",
  "data_type": "dropdown"
}
Parameter Description
key string Internal Question Key
api_name string Question API Field Name
label string Question Label, the actual Question
value string The Registrants Answer
data_type string The Data Type of the Question (text, dropdown, date, radio, etc...)

Event Type

Event Types belong to Users or Teams and make up the Public Scheduling Pages

Example:

{
  "id": "2d29c06c-0412-4105-82b8-98bfcf8d5a11",
  "url": "https://app.greminders.com/c/someperson/demomeeting",
  "name": "Demo Meeting",
  "type": "single",
  "active": true,
  "team_id": null,
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",>,
  "location": "",
  "start_buffer": "+2 hours",
  "tail_buffer": 0,
  "shortname": "demomeeting",
  "show_home": true,
  "calendar_id": null,
  "description": "",
  "created_date": "2022-07-07T08:56:22+00:00",
  "updated_date": "2022-07-07T08:56:22+00:00",
  "meeting_type": "Demo",
  "meeting_category": "Virtual",
  "last_booked": "2022-07-07T08:56:22+00:00",
  "times_used": 1,
  "require_approval": false,
  "sensitivity": "normal",
  "location_type": "google_meet",
  "event_duration_max": null,
  "event_duration_min": null,
  "event_duration_default": 30,
  "event_duration_type": "fixed",
  "event_duration" : 30,
  "max_events_per_slot": null,
  "can_schedule_from": null,
  "can_schedule_until": null,
  "can_schedule_within": "+60 days",
  "add_customer_to_calendar_invite": true,
  "add_organizer_to_calendar_invite": true,
  "locations": [
    {
      "type": "location",
      "description": "1234 Main St. Los Angeles, CA 90001",
      "sort": 0
    },
    {
      "type": "web_meeting",
      "provider": "google_meet",
      "description": "Google Meet",
      "sort": 1
    },
    {
      "type": "phone_call",
      "description": "{{invitee.phone}}",
      "sort": 2
    },
    {
      "type": "web_meeting",
      "provider": "gotomeeting",
      "description": "GoToMeeting",
      "sort": 3
    }
  ]
}
Parameter Description
id uuid Internal ID
active bool Active Flag
user_id uuid Internal User ID
team_id uuid Internal Team ID
url string Public Scheduling Link for this Event Type
shortname string Shortname of the User or Team (used in the url above)
type string The Type value for the Event Type
calendar_id uuid Internal Calendar ID the Event will be booked on (if NULL then the Primary Calendar is used)
name string Title of the Event Type
description string Description of the Event Type
location string Location of the Event Type
start_buffer string A buffer before starting to schedule an event from now (ex. "+2 hours" or "+3 days")
tail_buffer int The buffer for the next availability interval (after the meeting) in minutes
location_type string If Location is "custom" this is the location of the Event Type
can_schedule_within string Event can be scheduled within X time (ex. "+2 hours" or "+3 days")
show_home bool Will the Event Type show on the main Booking Screen
event_duration_type string Event Type Duration Type (fixed, variable)
event_duration_min int if Event Type Duration Type = fixed, this is the min time duration for the event in minutes
event_duration_max int if Event Type Duration Type = fixed, this is the max time duration for the event in minutes
event_duration int Event duration value in minutes
event_duration_default int Event duration default value
max_events_per_slot int Max # of Events per Time Slot (Overlapping Bookings), default null
can_schedule_from date Can schedule between this Start Date, ISO8601 format
can_schedule_until date Can schedule between this End Date, ISO8601 format
add_customer_to_calendar_invite bool Are we adding the client to the participant list (onto the Event Invitation)
add_organizer_to_calendar_invite bool Are we adding the organizer to the participant list (onto the Event Invitation)
created_date date Date & Time Event Type was originally created, ISO8601 format
updated_date date Date & Time Event Type was last modified, ISO8601 format
meeting_type string Meeting Type configured for the current event type
meeting_category string Meeting Category configured for the current event type
last_booked date The date this Event Type was last used/booked, ISO8601 format
times_used int How many times was this event type used
require_approval bool Whether user approval is required to complete the booking process
sensitivity string Event visibility/sensitivity value (normal or private)
deleted bool Soft-delete Flag
locations array of possible locations for this event type

Team

Teams are groups of Users for the purposes of Team Scheduling (Round Robin, All Together, etc...)

Example:

{
  "id": "f980c2af-379e-4c35-bc1e-a85b2653a6a0",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "name": "Sales Team West",
  "shortname": "484ee5fb",
  "avatar_url": "",
  "banner_url": "https://app.greminders.com/static/build/banner-default.jpg",
  "custom_fields": [
    {
      "key": "1684c2ed-ebc0-4351-afce-7635881eb6fe",
      "label": "Region",
      "value": "West",
      "api_name": "c_region",
      "data_type": "text"
    }
  ],
  "created_date": "2023-01-26T15:22:03+00:00",
  "updated_date": "2023-01-26T15:22:03+00:00",
  "deleted": false
}
Parameter Description
id uuid Internal ID
company_id uuid Internal Company ID
name string Team name
shortname string Shortname of the Team (used in the url above)
avatar_url string Link to Team avatar
banner_url string Link to Team banner
custom_fields array of Question Custom field values
created_date date Date & Time Team was originally created, ISO8601 format
updated_date date Date & Time Team was last modified, ISO8601 format
deleted bool Has this Team been deleted?

Team User

Team Users belong to Teams

Example:

{
  "team_id": "f980c2af-379e-4c35-bc1e-a85b2653a6a0",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "active": true,
  "created_date": "2023-02-02T13:44:52+00:00",
  "updated_date": "2023-02-02T13:45:52+00:00",
  "permissions": "manager"
}
Parameter Description
team_id uuid Internal Team ID
user_id uuid Internal User ID
active bool Active Flag
created_date date Date & Time Team User was originally created, ISO8601 format
updated_date date Date & Time Team User was last modified, ISO8601 format
permissions string Team User permissions

User

Users belong to your Organization

Example:

{
  "id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "first_name": "Michael",
  "last_name": "Scott",
  "shortname": "michaelscott",
  "url": "https://app.greminders.com/c/michaelscott",
  "avatar_url": null,
  "email": "[email protected]",
  "email_verified": true,
  "alternative_emails": [
    "[email protected]",
    "[email protected]"
  ],
  "mobile_phone": "19495556666",
  "active": true,
  "deleted": false,
  "country_code": "US",
  "title": "Sales Manager",
  "language": "en",
  "timezone": "America/Los_Angeles",
  "profile_id" : "11b0b3b7-b306-4520-a257-8d96253901fa",
  "custom_fields": [
    {
      "key": "99e3deb3-b09f-4dd8-9802-debd0a349873",
      "label": "Specializes in",
      "value": "Sales",
      "api_name": "c_specializes_in",
      "data_type": "checkbox"
    }
  ],
  "created_date": "2022-06-13T10:58:45-07:00",
  "updated_date": "2022-07-07T09:05:23+00:00"
}
Parameter Description
id uuid Internal ID
first_name string User first name
last_name string User last name
shortname string Shortname for User (used in My Link), unique across entire System
url string Public Scheduling Link for this User
avatar_url string Link to this User's Avatar
email string Email
email_verified bool Has this email address been verified?
alternative_emails array List of other/alternative email addresses of the User
mobile_phone string Mobile Number in E.164 format
active bool Is User Active,
deleted bool Flag for scheduled deletion of the User from the database (If true, the user and his data will be deleted)
country_code string ISO 3166-1 2 character Country Code
title string Job Title
language string Default Language (2 letter ISO 639-1 Code)
timezone string Time Zone of User in IANA Time Zone format
profile_id uuid Profile ID assigned to User
custom_fields array of Question Custom field values
created_date date Date & Time User was originally created, ISO8601 format
updated_date date Date & Time User was last modified, ISO8601 format

Profile

Profiles configured to your Organization

Example:

{
  "id": "4124b4f9-6995-4256-8ae4-35ee467ae199",
  "name": "Standard User",
  "permissions": [
    "user",
    "client_reminders",
    "client_reminders_create",
    "personal_reminders",
    "personal_reminders_create",
    "event_types",
    "event_types_create",
    "contacts_matching",
    "teams"
  ],
  "integrations": [
    "zoom",
    "gotomeeting",
    "google_meet",
    "microsoft_teams",
    "skype_business",
    "webex",
    "salesforce",
    "redtail-org",
    "hubspot"
  ],
  "user_defaults": {
    "allow_impersonate_calendar_view": true
  },
  "created_date": "2023-05-01T13:06:46+00:00",
  "updated_date": "2023-05-02T11:47:55+00:00",
  "created_by": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "updated_by": "b4b27575-de42-42a1-a760-02a79e397d6f"
}
Parameter Description
id uuid Internal ID
name string Profile name
permissions array Permissions list applied to users of the Profile
integrations array Integrations list allowed to be used by users of the Profile
user_defaults User Defaults Default settings for a new users
created_date date Date & Time Profile was originally created, ISO8601 format
updated_date date Date & Time Profile was last modified, ISO8601 format
created_by uuid Internal User ID of the User who created Profile
updated_by uuid Internal User ID of the user who last modified the Profile

User Defaults

Default settings will be applied to a new users belonging to the provided user profile

Example:

{
  "allow_impersonate_calendar_view": true
}
Parameter Description
allow_impersonate_calendar_view bool Allow calendar viewing via Impersonation

Pagination parameters

These parameters are used for pagination of the list of objects

Example:

GET https://api.greminders.com/calendars?limit=25&offset=0

Optional query parameters

Parameter Description
limit int Limiting the number of objects on a page (default: 25)
offset int Offset by a certain number of objects (default: 0)

Pagination response

The response contains the "paging" object includes three links: the current page, the next page and the previous page.

Example:

{
  "paging": {
    "current": "https://api.greminders.com/calendars?limit=25&offset=25",
    "previous": "https://api.greminders.com/calendars?limit=25&offset=0",
    "next": "https://api.greminders.com/calendars?limit=25&offset=50"
  }
}
Parameter Description
current string Current page URL
previous string Previous page URL
next string Next page URL

Single use link belongs to Event types and is used to book an event only once

Example:

{
  "link": "https://app.greminders.com/e/1464f5387dcd62a632d784a728b04d7b4dbc99ab"
}
Parameter Description
link string Single use link to the Event

Calendars API

List Calendars

Get a list of Calendars belonging to the authorized user

Example:

GET https://api.greminders.com/calendars?limit=25&offset=0

HTTP request

GET https://api.greminders.com/calendars

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
      "current": "https://api.greminders.com/calendars?limit=25&offset=0"
  }
}

Responses

Returns list of Calendar objects and a Pagination response object.

Code Description
200 Successful response

Get Calendar

Get a specific Calendar of the authorized user by ID

Example:

GET https://api.greminders.com/calendars/<UUID>

HTTP request

GET https://api.greminders.com/calendars/{id}

Path parameters

Parameter Description
id uuid Internal user calendar ID

Example:

{
  "id": "76a7d63f-a0c8-4844-85d1-d32b1b811041",
  "provider": "google",
  "name": "Michaels Calendar",
  "external_id": "[email protected]",
  "timezone": "America/Los_Angeles",
  "color": "#9fe1e7",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "active": true,
  "main": true,
  "primary": true,
  "created_date": "2023-01-05T16:18:34+00:00",
  "updated_date": "2023-01-17T10:29:21+00:00",
  "read_only": false,
  "send_reminders": true,
  "check_default_availability": true
}

Responses

Returns Calendar object

Code Description
200 Successful response
404 Calendar with requested ID does not exist

Events API

List Events

Get a list of Events / Meetings / Appointments

Example:

GET https://api.greminders.com/events?from_date=2023-01-16&to_date=2023-01-17&include_canceled=true&calendar_id=<UUID>&event_type_id=<UUID>&limit=25&offset=0

HTTP request

GET https://api.greminders.com/events

Required query parameters

Parameter Description
from_date date Start of date range to filter events, ISO8601 format
to_date date End of date range to filter events, ISO8601 format

Optional query parameters

Parameter Description
include_canceled bool Filter to include canceled events
include_all_users bool Filter to include All Users Events (You must be authenticated as an Administrator for this parameter to work). Default will filter to the Authenticated User.
email string Filter on any Events with this email address as a participant
calendar_id uuid Filter by Calendar ID
event_type_id uuid Filter by Event Type ID

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
    "current": "https://api.greminders.com/events?from_date=2023-01-16&to_date=2023-01-16&limit=25&offset=0"
  }
}

Responses

Returns list of Event objects and a Pagination response object.

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly

Get Event

Get Event by ID

Example:

GET https://api.greminders.com/events/<UUID>

HTTP request

GET https://api.greminders.com/events/{id}

Path parameters

Parameter Description
id uuid Internal Event ID

Optional query parameters

Parameter Description
include_all_users bool Filter to include All Users Events (You must be authenticated as an Administrator for this parameter to work). Default will filter to the Authenticated User.

Example:

{
  "id": "f8ab3fb9-8122-4753-9823-592a401e73ff",
  "external_id": "26jkvg7t3sp1ugmkd72tih91hk",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "event_type_id": null,
  "url": "https://app.greminders.com/event/2142ba19-64a3-4109-9e60-64f47d9bcb49",
  "weburl": "https://www.google.com/calendar/event?eid=MjZqa3ZnN3Qzc3AxdWdta2Q3MnRpaDkxaGsgbG9wYXRpbnNreXN2LnNkYWlAbQ",
  "reschedule_url": "https://www.greminders.com/r/TDL7xW",
  "cancel_url": "https://www.greminders.com/c/TDL7xW",
  "location": "https://meet.google.com/utd-yois-fsp",
  "body": "Review your Paper Needs",
  "name": "Demo Meeting with Dunder Mifflin",
  "status": "confirmed",
  "disposition": null,
  "freebusy": "busy",
  "provider": "google",
  "timezone": "America/Los_Angeles",
  "categories": [
    "Blueberry"
  ],
  "origination_date": "2022-07-07T02:16:35-07:00",
  "start_date": "2022-07-07T23:30:00-07:00",
  "end_date": "2022-07-08T00:00:00-07:00",
  "created_date": "2022-07-07T02:16:35-07:00",
  "updated_date": "2022-07-07T09:16:57+00:00",
  "is_organizer": true,
  "reply_status": null,
  "all_day_event": false,
  "client_timezone": "America/Los_Angeles",
  "meeting_type": "Demo",
  "disposition": "completed",
  "meeting_urls": [
    {
      "url": "https://meet.google.com/utd-yois-fsp",
      "provider": "google_meet"
    }
  ],
  "organizer": {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
  },
  "registrants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    }
  ],
  "participants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    },
    {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
    }
  ]
}

Responses

Returns Event object

Code Description
200 Successful response
404 Event with requested ID does not exist

Update Event Disposition

Update Event Disposition value

Example: PUT https://api.greminders.com/events/<UUID>/disposition

{
  "disposition": "completed",
}

HTTP request

PUT https://api.greminders.com/events/{id}/disposition

Path parameters

Parameter Description
id uuid Internal Event ID

Optional query parameters

Parameter Description
disposition string Can take the value "complete" or "no_show". Only for events that have not been canceled, do not require confirmation, and have already ended.

Example:

{
  "id": "f8ab3fb9-8122-4753-9823-592a401e73ff",
  "external_id": "26jkvg7t3sp1ugmkd72tih91hk",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "event_type_id": null,
  "url": "https://app.greminders.com/event/2142ba19-64a3-4109-9e60-64f47d9bcb49",
  "weburl": "https://www.google.com/calendar/event?eid=MjZqa3ZnN3Qzc3AxdWdta2Q3MnRpaDkxaGsgbG9wYXRpbnNreXN2LnNkYWlAbQ",
  "reschedule_url": "https://www.greminders.com/r/TDL7xW",
  "cancel_url": "https://www.greminders.com/c/TDL7xW",
  "location": "https://meet.google.com/utd-yois-fsp",
  "body": "Review your Paper Needs",
  "name": "Demo Meeting with Dunder Mifflin",
  "status": "confirmed",
  "disposition": null,
  "freebusy": "busy",
  "provider": "google",
  "timezone": "America/Los_Angeles",
  "categories": [
    "Blueberry"
  ],
  "origination_date": "2022-07-07T02:16:35-07:00",
  "start_date": "2022-07-07T23:30:00-07:00",
  "end_date": "2022-07-08T00:00:00-07:00",
  "created_date": "2022-07-07T02:16:35-07:00",
  "updated_date": "2022-07-07T09:16:57+00:00",
  "is_organizer": true,
  "reply_status": null,
  "all_day_event": false,
  "client_timezone": "America/Los_Angeles",
  "meeting_type": "Demo",
  "disposition": "completed",
  "meeting_urls": [
    {
      "url": "https://meet.google.com/utd-yois-fsp",
      "provider": "google_meet"
    }
  ],
  "organizer": {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
  },
  "registrants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    }
  ],
  "participants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    },
    {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
    }
  ]
}

Responses

Returns Event object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
404 Event with requested ID does not exist

Events Registrants API

Update Registrant Disposition

Update Event Registrant Disposition value

Example: PUT https://api.greminders.com/events/<UUID>/registrant/<UUID>/disposition

{
  "disposition": "completed",
}

HTTP request

PUT https://api.greminders.com/events/{event_id}/registrant/{registrant_id}/disposition

Path parameters

Parameter Description
event_id uuid Internal Event ID
registrant_id uuid Internal Event Registrant ID

Optional query parameters

Parameter Description
disposition string Can take the value "complete" or "no_show". Only for events that have not been canceled, do not require confirmation, and have already ended. This option does not apply to internal registrants.

Example:

{
  "id": "f8ab3fb9-8122-4753-9823-592a401e73ff",
  "external_id": "26jkvg7t3sp1ugmkd72tih91hk",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "event_type_id": null,
  "url": "https://app.greminders.com/event/2142ba19-64a3-4109-9e60-64f47d9bcb49",
  "weburl": "https://www.google.com/calendar/event?eid=MjZqa3ZnN3Qzc3AxdWdta2Q3MnRpaDkxaGsgbG9wYXRpbnNreXN2LnNkYWlAbQ",
  "reschedule_url": "https://www.greminders.com/r/TDL7xW",
  "cancel_url": "https://www.greminders.com/c/TDL7xW",
  "location": "https://meet.google.com/utd-yois-fsp",
  "body": "Review your Paper Needs",
  "name": "Demo Meeting with Dunder Mifflin",
  "status": "confirmed",
  "disposition": null,
  "freebusy": "busy",
  "provider": "google",
  "timezone": "America/Los_Angeles",
  "categories": [
    "Blueberry"
  ],
  "origination_date": "2022-07-07T02:16:35-07:00",
  "start_date": "2022-07-07T23:30:00-07:00",
  "end_date": "2022-07-08T00:00:00-07:00",
  "created_date": "2022-07-07T02:16:35-07:00",
  "updated_date": "2022-07-07T09:16:57+00:00",
  "is_organizer": true,
  "reply_status": null,
  "all_day_event": false,
  "client_timezone": "America/Los_Angeles",
  "meeting_type": "Demo",
  "disposition": "completed",
  "meeting_urls": [
    {
      "url": "https://meet.google.com/utd-yois-fsp",
      "provider": "google_meet"
    }
  ],
  "organizer": {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
  },
  "registrants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    }
  ],
  "participants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    },
    {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
    }
  ]
}

Responses

Returns Event object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
404 Event or Event Registrant with requested ID does not exist

Update Registrant Fields

Update Event Registrant Fields

Example: PUT https://api.greminders.com/events/<UUID>/registrant/<UUID>

{
  "provider_source": "homegrowncrm",
  "object": "contacts",
  "external_id": "ABC123",
  "field_name": "phone",
  "value": "805-777-8888"
}

HTTP request

PUT https://api.greminders.com/events/{event_id}/registrant/{registrant_id}

Path parameters

Parameter Description
event_id uuid Internal Event ID
registrant_id uuid Internal Event Registrant ID

Optional query parameters

Parameter Description
provider_source string Source Provider (required) such as "salesforce", "homegrowncrm", etc... The System the data came from
object string Object Name, such as account, contact, lead, etc..
external_id string The ID of the record from the system this data originated from
field_name string Name of the field to be updated. Fields that can be updated: 'first_name', 'last_name', 'email', 'phone', 'timezone'. (required)
value string Value of the field (required)

Example:

{
  "id": "f8ab3fb9-8122-4753-9823-592a401e73ff",
  "external_id": "26jkvg7t3sp1ugmkd72tih91hk",
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "event_type_id": null,
  "url": "https://app.greminders.com/event/2142ba19-64a3-4109-9e60-64f47d9bcb49",
  "weburl": "https://www.google.com/calendar/event?eid=MjZqa3ZnN3Qzc3AxdWdta2Q3MnRpaDkxaGsgbG9wYXRpbnNreXN2LnNkYWlAbQ",
  "reschedule_url": "https://www.greminders.com/r/TDL7xW",
  "cancel_url": "https://www.greminders.com/c/TDL7xW",
  "location": "https://meet.google.com/utd-yois-fsp",
  "body": "Review your Paper Needs",
  "name": "Demo Meeting with Dunder Mifflin",
  "status": "confirmed",
  "disposition": null,
  "freebusy": "busy",
  "provider": "google",
  "timezone": "America/Los_Angeles",
  "categories": [
    "Blueberry"
  ],
  "origination_date": "2022-07-07T02:16:35-07:00",
  "start_date": "2022-07-07T23:30:00-07:00",
  "end_date": "2022-07-08T00:00:00-07:00",
  "created_date": "2022-07-07T02:16:35-07:00",
  "updated_date": "2022-07-07T09:16:57+00:00",
  "is_organizer": true,
  "reply_status": null,
  "all_day_event": false,
  "client_timezone": "America/Los_Angeles",
  "meeting_type": "Demo",
  "disposition": "completed",
  "meeting_urls": [
    {
      "url": "https://meet.google.com/utd-yois-fsp",
      "provider": "google_meet"
    }
  ],
  "organizer": {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
  },
  "registrants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    }
  ],
  "participants": [
    {
      "id": "30667c42-05f4-416e-9698-1e1839fb951d",
      "role": "participant",
      "email": "[email protected]",
      "phone": "17145557777",
      "status": "registered",
      "internal": false,
      "timezone": "America/Los_Angeles",
      "last_name": "Meyers",
      "questions": [
        {
          "key": "bb132ecb-e8bd-4b42-9d93-73f28df53308",
          "label": "What is your Birth Date?",
          "value": "1970-02-15",
          "api_name": "c_birth_date",
          "data_type": "date"
        },
        {
          "key": "02625750-ec63-43bc-92ad-523340d8c26d",
          "label": "Company Name",
          "value": "Office Depot",
          "api_name": "c_company_name",
          "data_type": "text"
        }
      ],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Larry",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": "eventregistration",
      "source_phone": null,
      "updated_date": "2022-07-07T02:50:21-07:00",
      "external_role": "recipient",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": {
        "amount": 50,
        "currency": "USD",
        "provider": "stripe",
        "card_brand": "visa",
        "discount_code": null,
        "transaction_id": "pi_3MpLlbGEyKDZHOoW0fW1fm5C",
        "card_holder_name": "Larry Meyers",
        "card_last4digits": "1111"
      }
    },
    {
      "id": "c84acf25-6c16-4e49-924f-8799b7a4e607",
      "role": "organizer",
      "email": "[email protected]",
      "phone": null,
      "status": "registered",
      "internal": true,
      "timezone": "America/Los_Angeles",
      "last_name": "Scott",
      "questions": [],
      "cancel_url": "https://www.greminders.com/c/BgIzRz",
      "first_name": "Michael",
      "confirm_url": "https://www.greminders.com/f/BgIzRz",
      "created_date": "2022-07-07T02:49:06-07:00",
      "source_email": null,
      "source_phone": "user",
      "updated_date": "2022-07-07T02:49:06-07:00",
      "external_role": "sender",
      "reschedule_url": "https://www.greminders.com/r/BgIzRz",
      "payment": null
    }
  ]
}

Responses

Returns Event object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
404 Event Registrant with requested ID does not exist

Event Types API

List Event Types

Get a list of Event types

Example:

GET https://api.greminders.com/event-types?limit=25&offset=0

HTTP request

GET https://api.greminders.com/event-types

Optional query parameters

Parameter Description
active bool Filter to include only Active or Inactive Event Types

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
  ],
  "paging": {
    "current": "https://api.greminders.com/event-types?limit=25&offset=0"
  }
}

Responses

Returns list of Event type objects and a Pagination response object.

Code Description
200 Successful response

Get Event type

Get Event type by ID

Example:

GET https://api.greminders.com/event-types/<UUID>

HTTP request

GET https://api.greminders.com/event-types/{id}

Path parameters

Parameter Description
id uuid Internal Event type ID

Example:

{
  "id": "2d29c06c-0412-4105-82b8-98bfcf8d5a11",
  "url": "https://app.greminders.com/c/someperson/demomeeting",
  "name": "Demo Meeting",
  "type": "single",
  "active": true,
  "team_id": null,
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",>,
  "location": "",
  "start_buffer": "+2 hours",
  "tail_buffer": 0,
  "shortname": "demomeeting",
  "show_home": true,
  "calendar_id": null,
  "description": "",
  "created_date": "2022-07-07T08:56:22+00:00",
  "updated_date": "2022-07-07T08:56:22+00:00",
  "meeting_type": "Demo",
  "meeting_category": "Virtual",
  "last_booked": "2022-07-07T08:56:22+00:00",
  "times_used": 1,
  "require_approval": false,
  "sensitivity": "normal",
  "location_type": "google_meet",
  "event_duration_max": null,
  "event_duration_min": null,
  "event_duration_default": 30,
  "event_duration_type": "fixed",
  "event_duration" : 30,
  "max_events_per_slot": null,
  "can_schedule_from": null,
  "can_schedule_until": null,
  "can_schedule_within": "+60 days",
  "add_customer_to_calendar_invite": true,
  "add_organizer_to_calendar_invite": true,
  "locations": [
    {
      "type": "location",
      "description": "1234 Main St. Los Angeles, CA 90001",
      "sort": 0
    },
    {
      "type": "web_meeting",
      "provider": "google_meet",
      "description": "Google Meet",
      "sort": 1
    },
    {
      "type": "phone_call",
      "description": "{{invitee.phone}}",
      "sort": 2
    },
    {
      "type": "web_meeting",
      "provider": "gotomeeting",
      "description": "GoToMeeting",
      "sort": 3
    }
  ]
}

Responses

Returns Event type object

Code Description
200 Successful response
404 Event type with requested ID does not exist

Get Single use link by Event type ID

Example:

GET https://api.greminders.com/event-types/<UUID>/single-use-link

HTTP request

GET https://api.greminders.com/event-types/{id}/single-use-link

Path parameters

Parameter Description
id uuid Internal Event type ID

Example:

{
  "link": "https://app.greminders.com/e/1464f5387dcd62a632d784a728b04d7b4dbc99ab"
}

Responses

Returns Single use link object

Code Description
200 Successful response
403 You do not have permission for this
404 Event type with requested ID does not exist

Teams API

List Teams

Get a list of Teams

Example:

GET https://api.greminders.com/teams?limit=25&offset=0

HTTP request

GET https://api.greminders.com/teams

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
    "current": "https://api.greminders.com/teams?limit=25&offset=0"
  }
}

Responses

Returns list of Team objects and a Pagination response object.

Code Description
200 Successful response

Get Team

Get Team by ID

Example:

GET https://api.greminders.com/teams/<UUID>

HTTP request

GET https://api.greminders.com/teams/{id}

Path parameters

Parameter Description
id uuid Internal Team ID

Example:

{
  "id": "f980c2af-379e-4c35-bc1e-a85b2653a6a0",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "name": "Sales Team West",
  "shortname": "484ee5fb",
  "avatar_url": "",
  "banner_url": "https://app.greminders.com/static/build/banner-default.jpg",
  "custom_fields": [
    {
      "key": "1684c2ed-ebc0-4351-afce-7635881eb6fe",
      "label": "Region",
      "value": "West",
      "api_name": "c_region",
      "data_type": "text"
    }
  ],
  "created_date": "2023-01-26T15:22:03+00:00",
  "updated_date": "2023-01-26T15:22:03+00:00",
  "deleted": false
}

Responses

Returns Team object

Code Description
200 Successful response
404 Team with requested ID does not exist

Create Team

Create new Team

Example: POST https://api.greminders.com/teams

{
  "name": "Team name"
}

HTTP request

POST https://api.greminders.com/teams

Required body parameters

Parameter Description
name string Name of new Team
custom_fields array of Question Custom field values (optional)

Example:

{
  "id": "f980c2af-379e-4c35-bc1e-a85b2653a6a0",
  "company_id": "a8faca71-397f-4de6-adca-46c19a8d5bf2",
  "name": "Sales Team West",
  "shortname": "484ee5fb",
  "avatar_url": "",
  "banner_url": "https://app.greminders.com/static/build/banner-default.jpg",
  "custom_fields": [
    {
      "key": "1684c2ed-ebc0-4351-afce-7635881eb6fe",
      "label": "Region",
      "value": "West",
      "api_name": "c_region",
      "data_type": "text"
    }
  ],
  "created_date": "2023-01-26T15:22:03+00:00",
  "updated_date": "2023-01-26T15:22:03+00:00",
  "deleted": false
}

Responses

Returns Team object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this

Update Team

Update Team data

Example: PUT https://api.greminders.com/teams/<UUID>

{
  "name": "Sales Team East",
  "custom_fields": [
    {
      "api_name": c_region,
      "value": "East"
    }
  ]
}

HTTP request

PUT https://api.greminders.com/teams/{id}

Path parameters

Parameter Description
id uuid Internal Team ID

Optional body parameters

Parameter Description
name string Name of new Team
custom_fields array of Question Custom field values (optional)

Example:

{
  "id": <UUID>,
  "company_id": <UUID>,
  "name": "Sales Team East",
  "shortname": "484ee5fb",
  "avatar_url": "",
  "banner_url": "https://app.greminders.com/static/build/banner-default.jpg",
  "custom_fields": [
    {
      "key": <UUID>,
      "api_name": c_region,
      "label": "Region",
      "value": "East"
    }
  ],
  "created_date": "2023-01-26T15:22:03+00:00",
  "updated_date": "2023-01-26T15:22:03+00:00",
  "deleted": false
}

Responses

Returns Team object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this
404 Team with requested ID does not exist

Delete Team

Delete Team

Example:

DELETE https://api.greminders.com/teams/<UUID>

HTTP request

DELETE https://api.greminders.com/teams/{id}

Path parameters

Parameter Description
id uuid Internal Team ID

Responses

Code Description
204 Successful response
403 You do not have permission for this
404 Team with requested ID does not exist

List Event Types of Team

Get a list of Event types belonging to a Team

Example:

GET https://api.greminders.com/teams/<UUID>/event-types?limit=25&offset=0

HTTP request

GET https://api.greminders.com/teams/{team_id}/event-types

Path parameters

Parameter Description
team_id uuid Internal Team ID

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
    "current": "https://api.greminders.com/teams/ea21b85b-3cc0-49e3-ac7e-ffb267aa6263/event_types?limit=25&offset=0"
  }
}

Responses

Returns list of Event type objects belonging to a Team and a Pagination response object.

Code Description
200 Successful response

Get Event Type of Team

Get the Event type by ID that belongs to the Team

Example:

GET https://api.greminders.com/teams/<UUID>/event_types/<UUID>

HTTP request

GET https://api.greminders.com/teams/{team_id}/event_types/{event_type_id}

Path parameters

Parameter Description
team_id uuid Internal Team ID
event_type_id uuid Internal Event type ID

Example:

{
  "id": "2d29c06c-0412-4105-82b8-98bfcf8d5a11",
  "url": "https://app.greminders.com/c/someperson/demomeeting",
  "name": "Demo Meeting",
  "type": "single",
  "active": true,
  "team_id": null,
  "user_id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",>,
  "location": "",
  "start_buffer": "+2 hours",
  "tail_buffer": 0,
  "shortname": "demomeeting",
  "show_home": true,
  "calendar_id": null,
  "description": "",
  "created_date": "2022-07-07T08:56:22+00:00",
  "updated_date": "2022-07-07T08:56:22+00:00",
  "meeting_type": "Demo",
  "meeting_category": "Virtual",
  "last_booked": "2022-07-07T08:56:22+00:00",
  "times_used": 1,
  "require_approval": false,
  "sensitivity": "normal",
  "location_type": "google_meet",
  "event_duration_max": null,
  "event_duration_min": null,
  "event_duration_default": 30,
  "event_duration_type": "fixed",
  "event_duration" : 30,
  "max_events_per_slot": null,
  "can_schedule_from": null,
  "can_schedule_until": null,
  "can_schedule_within": "+60 days",
  "add_customer_to_calendar_invite": true,
  "add_organizer_to_calendar_invite": true,
  "locations": [
    {
      "type": "location",
      "description": "1234 Main St. Los Angeles, CA 90001",
      "sort": 0
    },
    {
      "type": "web_meeting",
      "provider": "google_meet",
      "description": "Google Meet",
      "sort": 1
    },
    {
      "type": "phone_call",
      "description": "{{invitee.phone}}",
      "sort": 2
    },
    {
      "type": "web_meeting",
      "provider": "gotomeeting",
      "description": "GoToMeeting",
      "sort": 3
    }
  ]
}

Responses

Returns Event type object

Code Description
200 Successful response
404 Team and event type with requested IDs do not exist

Get Single use link by Event type ID that belongs to the Team

Example:

GET https://api.greminders.com/teams/<UUID>/event-types/<UUID>/single-use-link

HTTP request

GET https://api.greminders.com/teams/{team_id}/event-types/{event_type_id}/single-use-link

Path parameters

Parameter Description
team_id uuid Internal Team ID
event_type_id uuid Internal Event type ID

Example:

{
  "link": "https://app.greminders.com/e/1464f5387dcd62a632d784a728b04d7b4dbc99ab"
}

Responses

Returns Single use link object

Code Description
200 Successful response
403 You do not have permission for this
404 Event type with requested ID does not exist

Team Users API

List Team Users

Get a list of Team users

Example:

GET https://api.greminders.com/teams/<UUID>/members?limit=25&offset=0

HTTP request

GET https://api.greminders.com/teams/{team_id}/members

Path parameters

Parameter Description
team_id uuid Internal Team ID

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
    "current": "https://api.greminders.com/teams/ea21b85b-3cc0-49e3-ac7e-ffb267aa6263/members?limit=25&offset=0"
  }
}

Responses

Returns list of Team user objects and a Pagination response object.

Code Description
200 Successful response
403 You do not have permission for this

Get Team User

Get Team User by ID

Example:

GET https://api.greminders.com/teams/<UUID>/members/<UUID>

HTTP request

GET https://api.greminders.com/teams/{team_id}/members/{user_id}

Path parameters

Parameter Description
team_id uuid Internal Team ID
user_id uuid Internal User ID

Example:

{
  "team_id": <UUID>,
  "user_id": <UUID>,
  "active": true,
  "created_date": "2023-02-02T13:44:52+00:00",
  "updated_date": "2023-02-02T13:45:52+00:00",
  "permissions": "manager"
}

Responses

Returns Team User object

Code Description
200 Successful response
403 You do not have permission for this
404 Team and user with requested IDs do not exist

Add Team User

Add User to Team

Example: POST https://api.greminders.com/teams/<UUID>/members

{
  "user_id": <UUID>,
  "permissions": "member"
}

HTTP request

POST https://api.greminders.com/teams/{team_id}/members

Path parameters

Parameter Description
team_id uuid Internal Team ID

Required body parameters

Parameter Description
user_id uuid Internal User ID
permissions string String value of team user permission (can be "manager" or "member")

Example:

{
  "team_id": <UUID>,
  "user_id": <UUID>,
  "active": true,
  "created_date": "2023-02-02T13:44:52+00:00",
  "updated_date": "2023-02-02T13:45:52+00:00",
  "permissions": "member"
}

Responses

Returns Team User object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this
404 User with requested ID does not exist

Update Team User

Update Team User data

Example: PUT https://api.greminders.com/teams/<UUID>/members/<UUID>

{
  "user_id": <UUID>,
  "permissions": "manager",
  "active": true
}

HTTP request

PUT https://api.greminders.com/teams/{team_id}/members/{user_id}

Path parameters

Parameter Description
team_id uuid Internal Team ID
user_id uuid Internal User ID

Optional body parameters

Parameter Description
active bool Active Flag
permissions string String value of team user permission (can be "manager" or "member")

Example:

{
  "team_id": <UUID>,
  "user_id": <UUID>,
  "active": false,
  "created_date": "2023-02-02T13:44:52+00:00",
  "updated_date": "2023-02-02T13:45:52+00:00",
  "permissions": "manager"
}

Responses

Returns Team User object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this
404 Team and user with requested IDs do not exist

Delete Team User

Delete Team User

Example:

DELETE https://api.greminders.com/teams/<UUID>/members/<UUID>

HTTP request

DELETE https://api.greminders.com/teams/{team_id}/members/{user_id}

Path parameters

Parameter Description
team_id uuid Internal Team ID
user_id uuid Internal User ID

Responses

Code Description
204 Successful response
403 You do not have permission for this
404 Team and user with requested IDs do not exist

Users API

List Users

Get a list of Users

Example:

GET https://api.greminders.com/users?q=john

HTTP request

GET https://api.greminders.com/users

Optional query parameters

Parameter Description
q string text search string (optional)

Standard Pagination parameters are used.

Example:

{
  "results": [
    {
      "id": <UUID>,
      ...
    },
    {
      "id": <UUID>,
      ...
    }
  ],
  "paging": {
    "current": "https://api.greminders.com/users?limit=25&offset=0"
  }
}

Responses

The method returns a "results" object, which contains a list of User objects and a Pagination response object.

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this

Get User

Get User by ID

Example:

GET https://api.greminders.com/users/<UUID>

HTTP request

GET https://api.greminders.com/users/{id}

Path parameters

Parameter Description
id uuid Internal User ID

Example:

{
  "id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "first_name": "Michael",
  "last_name": "Scott",
  "shortname": "michaelscott",
  "url": "https://app.greminders.com/c/michaelscott",
  "avatar_url": null,
  "email": "[email protected]",
  "email_verified": true,
  "alternative_emails": [
    "[email protected]",
    "[email protected]"
  ],
  "mobile_phone": "19495556666",
  "active": true,
  "deleted": false,
  "country_code": "US",
  "title": "Sales Manager",
  "language": "en",
  "timezone": "America/Los_Angeles",
  "profile_id" : "11b0b3b7-b306-4520-a257-8d96253901fa",
  "custom_fields": [
    {
      "key": "99e3deb3-b09f-4dd8-9802-debd0a349873",
      "label": "Specializes in",
      "value": "Sales",
      "api_name": "c_specializes_in",
      "data_type": "checkbox"
    }
  ],
  "created_date": "2022-06-13T10:58:45-07:00",
  "updated_date": "2022-07-07T09:05:23+00:00"
}

Responses

Returns User object

Code Description
200 Successful response
403 You do not have permission for this
404 User with requested ID does not exist

Invite User

Invite a New User

Example: POST https://api.greminders.com/users

{
  "email": "[email protected]",
  "send_invitations": true,
  "profile_id": <UUID>
}

HTTP request

POST https://api.greminders.com/users

Body parameters

Parameter Description
email string The email address to which the invitation letter will be sent (required)
send_invitations bool Send Invite via Email? (optional)
profile_id uuid User profile ID to Assign to user (optional). Standard User profile will be applied If not provided.

Example:

{
  "id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "first_name": "Michael",
  "last_name": "Scott",
  "shortname": "michaelscott",
  "url": "https://app.greminders.com/c/michaelscott",
  "avatar_url": null,
  "email": "[email protected]",
  "email_verified": true,
  "alternative_emails": [
    "[email protected]",
    "[email protected]"
  ],
  "mobile_phone": "19495556666",
  "active": true,
  "deleted": false,
  "country_code": "US",
  "title": "Sales Manager",
  "language": "en",
  "timezone": "America/Los_Angeles",
  "profile_id" : "11b0b3b7-b306-4520-a257-8d96253901fa",
  "custom_fields": [
    {
      "key": "99e3deb3-b09f-4dd8-9802-debd0a349873",
      "label": "Specializes in",
      "value": "Sales",
      "api_name": "c_specializes_in",
      "data_type": "checkbox"
    }
  ],
  "created_date": "2022-06-13T10:58:45-07:00",
  "updated_date": "2022-07-07T09:05:23+00:00"
}

Responses

Returns User object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this

Update User

Update User data

Example: PUT https://api.greminders.com/users/<UUID>

{
  "first_name": "some",
  "last_name": "person",
  "email": "[email protected]",
  "mobile_phone": "19495556666",
  "alternative_emails": [],
  "title": "",
  "country_code": "US",
  "timezone": "America/Los_Angeles",
  "active": true,
  "profile_id": <UUID>,
  "custom_fields": [
    {
      "api_name": c_expertise,
      "value": "Sales"
    }
  ],
}

HTTP request

PUT https://api.greminders.com/users/{id}

Path parameters

Parameter Description
id uuid Internal User ID

Optional body parameters

Parameter Description
first_name string First name
last_name string Last name
email string Email
mobile_phone string Mobile phone number in E.164 format
alternate_emails array of strings Alternate User emails
title string Job Title
country_code string ISO 3166-1 2 character Country Code
timezone string Time Zone of User in IANA Time Zone format
active bool Active User Flag
profile_id uuid User profile ID to Assign to user.
custom_fields array of Question Custom field values (optional)

Example:

{
  "id": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "first_name": "Michael",
  "last_name": "Scott",
  "shortname": "michaelscott",
  "url": "https://app.greminders.com/c/michaelscott",
  "avatar_url": null,
  "email": "[email protected]",
  "email_verified": true,
  "alternative_emails": [
    "[email protected]",
    "[email protected]"
  ],
  "mobile_phone": "19495556666",
  "active": true,
  "deleted": false,
  "country_code": "US",
  "title": "Sales Manager",
  "language": "en",
  "timezone": "America/Los_Angeles",
  "profile_id" : "11b0b3b7-b306-4520-a257-8d96253901fa",
  "custom_fields": [
    {
      "key": "99e3deb3-b09f-4dd8-9802-debd0a349873",
      "label": "Specializes in",
      "value": "Sales",
      "api_name": "c_specializes_in",
      "data_type": "checkbox"
    }
  ],
  "created_date": "2022-06-13T10:58:45-07:00",
  "updated_date": "2022-07-07T09:05:23+00:00"
}

Responses

Returns User object

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this
404 User with requested ID does not exist

Delete User

Delete User

Example:

DELETE https://api.greminders.com/users/<UUID>

HTTP request

DELETE https://api.greminders.com/users/{id}

Path parameters

Parameter Description
id uuid Internal User ID

Responses

Code Description
204 Successful response
403 You do not have permission for this
404 User with requested ID does not exist

User Invite URL

Return the Invite URL for the User. If the User has no invite URL or it has already expired the system will generate a new one. If the User has already accepted the invite the system will return "invite_accepted".

Example:

GET https://api.greminders.com/users/<UUID>/invite-url

HTTP request

GET https://api.greminders.com/users/{id}/invite-url

Path parameters

Parameter Description
id uuid Internal User ID

Example:

// A valid Invite URL
{ "invite_url": "https://app.greminders.com/gettingstarted/<UUID>/s" }

// The User has already accepted the invite
{ "invite_url": "invite_accepted" }

// The User is inactive. Inactive Users cannot have invite URLs
{ "invite_url": null }

Responses

Code Description
204 Successful response
403 You do not have permission for this
404 User with requested ID does not exist

Profiles API

List Profiles

Get a list of Profiles

Example:

GET https://api.greminders.com/profiles

HTTP request

GET https://api.greminders.com/profiles

Standard Pagination parameters are used.

Example:

{
    "results": [
      {
        "id": <UUID>,
        ...
      },
      {
        "id": <UUID>,
        ...
      }
    ],
    "paging": {
        "current": "https://.greminders.com/profiles?limit=25&offset=0"
    }
}

Responses

The method returns a "results" object, which contains a list of Profiles objects and a Pagination response object.

Code Description
200 Successful response
400 Some of the parameters are specified incorrectly
403 You do not have permission for this

Get Profile

Get Profile by ID

Example:

GET https://api.greminders.com/profiles/<UUID>

HTTP request

GET https://api.greminders.com/profiles/{id}

Path parameters

Parameter Description
id uuid Internal User ID

Example:

{
  "id": "4124b4f9-6995-4256-8ae4-35ee467ae199",
  "name": "Standard User",
  "permissions": [
    "user",
    "client_reminders",
    "client_reminders_create",
    "personal_reminders",
    "personal_reminders_create",
    "event_types",
    "event_types_create",
    "contacts_matching",
    "teams"
  ],
  "integrations": [
    "zoom",
    "gotomeeting",
    "google_meet",
    "microsoft_teams",
    "skype_business",
    "webex",
    "salesforce",
    "redtail-org",
    "hubspot"
  ],
  "user_defaults": {
    "allow_impersonate_calendar_view": true
  },
  "created_date": "2023-05-01T13:06:46+00:00",
  "updated_date": "2023-05-02T11:47:55+00:00",
  "created_by": "77f2bedf-48b4-4e98-af45-8c1185158ce6",
  "updated_by": "b4b27575-de42-42a1-a760-02a79e397d6f"
}

Responses

Returns Profile object

Code Description
200 Successful response
403 You do not have permission for this
404 Profile with requested ID does not exist