API Overview
Welcome to the GReminders API. The GReminders API has 3 parts:
- Embed Booking Widget
- REST API
- Webhooks to notify you of new/updated/deleted Records (Events, Notifications, etc...)
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...
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...
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:
- http_timeout - Your server took longer than 3 seconds to respond to the previous webhook delivery attempt.
- too_many_redirects - If we encounter more than 5 redirects, we'll retry the request in hopes it won't be that many this time.
- connection_failed - Couldn't to connect to your server.
- http_error - We encountered an HTTP status code that was not in the HTTP 200 OK range.
- unknown_error - For some reason it didn't work and we don't know why.
Working with Webhooks
Webhook Subscription
To create webhook subscription follow next steps:
- Navigate to your GRemidners account and go to Org Settings > API. Click on the Webhooks Tab..
- Enable Webhooks
- Create a New Webhook (You can do this programatically as well via the API)
- Provide webhook Name, Receiving Endpoint URL, check desired Event Hooks and enable webhook by hitting Active toggle
- Save your webhook
- Copy your Signing Secret (to be used later, optional)
Note: a good site for testing webhooks is: https://webhook.site
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 = "YOURSIGNINGSECRETHERE";
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 can 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.
Working with Zapier
Normally you will see an array of JSON:
"questions": [
{
"key": "96787e4d-e2d1-4b39-8e35-f9fed7f50df8",
"label": "fav color?",
"value": "blue",
"api_name": "c_fav_color",
"data_type": "text"
},
{
"key": "d9ab2862-32cb-4919-8a57-19276ba7e78d",
"label": "Do you like Coffee?",
"value": true,
"api_name": "c_coffee",
"data_type": "yes_no_toggle"
}
],
With Zapier "Friendly" you will see them as Javascript Objects:
"questions": {
"c_fav_color": {
"key": "96787e4d-e2d1-4b39-8e35-f9fed7f50df8",
"label": "fav color?",
"value": "blue",
"api_name": "c_fav_color",
"data_type": "text"
},
"c_coffee": {
"key": "d9ab2862-32cb-4919-8a57-19276ba7e78d",
"label": "Do you like Coffee?",
"value": true,
"api_name": "c_coffee",
"data_type": "yes_no_toggle"
}
}
Zapier and other Low Code Middleware tools enable various automations. Learn More Here
To work with Registrant Custom Questions better we have enabled a "Zapier Friendly Format".
The main difference is how Custom Questions are represented in the Payload.
This will make it easier to work with within Zapier since Zapier doesnt allow for "looping" within a array element (or at least not easily). For implementation with the API and code we recommend using the standard way.
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:
- Name - Application name
- Redirect URLs - These are the URLs to which the service will redirect the user after authorization
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 request 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 calendar 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 |
|
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 |
Single Use Link
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 |
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_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 |
Routing Form
Routing forms are used to redirect clients
Example:
{
"id": <UUID>,
"active": true,
"url": "https://app.greminders.com/o/short_name",
"shortname": "short_name",
"name": "routing form name",
"description": "description for routing form",
"created_date": "2024-01-22T08:15:44+00:00",
"updated_date": "2024-01-22T08:15:50+00:00",
"last_booked": "2024-01-22T13:12:26+00:00",
"times_used": 1,
}
Parameter | Description |
---|---|
id uuid |
Internal Routing form ID |
active bool |
Is Routing form Active |
url string |
The public URL of Routing form |
shortname string |
Internal name for Routing form |
description string |
Internal description for Routing form |
created_date string |
Date & Time Routing form was originally created, ISO8601 format |
updated_date string |
Date & Time Routing form was last modified, ISO8601 format |
last_booked string |
Date & Time Routing form was last booked, ISO8601 format |
times_used int |
Number of times Routing form was used |
Webhook
Webhooks allow developers to trigger actions based on events occurring in GReminders. Read More
Webhooks must be enabled in the settings first.
Example:
{
"id": "df4394fc-fb39-4b45-88cd-3b727d7d7aae",
"name": "Webhook Name",
"url": "https://receiving-endpoint.example",
"triggers": {
"event": [
"created",
"updated",
"deleted"
],
"event_type": [
"created",
"updated",
"deleted"
],
"user": [
"created",
"updated",
"deleted"
],
"notification": [
"created",
"updated"
]
},
"trigger_for_events": "all",
"active": true,
"created_date": "2024-06-05T10:35:20+00:00",
"updated_date": "2024-06-05T10:35:20+00:00",
"signing_secret": "06fd05aaf876b615adf64525971012ff2916d2e4e885f54ceb90855b68c5d25f"
}
Parameter | Description |
---|---|
id uuid |
Internal ID |
name string |
Name of Webhook |
url string |
Webhook receiving endpoint URL |
triggers object |
An object that contains a structure of objects and events that trigger the webhook |
trigger_for_events string |
On which events will the webhook trigger (accepts the values 'all' or 'greminders') Note: 'all' will trigger for ALL events, even ones not originated via GReminders, this is basically equivalent as a proxy for your source calendar (Google, Microsoft, etc...) |
active bool |
Is Webhook Active |
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 |
signing_secret string |
The identifier for validating Webhook requests |
For the objects Event, Event Type, and User, the available events are: Created, Updated, Deleted. For the object Notifications, only the events Created and Updated are available.
Below is the structure of the object for the parameter 'triggers':
{ "object_type": [ "created", "updated", ... ], ... }
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 |
Sorting Parameters
These parameters are used to sort query results
Use a string in the format "parameter-name" or "parameter-name:direction" for sorting, use comma-separated values for multiple parameters. The direction can be "asc" or "desc" (by default "asc" is used).
Example:
GET https://api.greminders.com/calendars?sort=name,active:desc
Optional query parameters
Parameter | Description |
---|---|
sort string |
One or more parameters in the above format |
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&sort=name:asc,active:asc
HTTP request
GET https://api.greminders.com/calendars
Standard Pagination parameters are used.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name, active.
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&sort=start_date:asc,end_date:asc,name:asc
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.
Standard Sorting parameters are used. The following parameters are allowed for sorting: start_date, end_date, name.
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 |
Delete Event
Delete Event by ID. This is a hard delete. It will also remove the event from the Provider Calendar (Outlook, Google, etc...).
This endpoint does not respect Host Setings. If you want to do a "cancel" use the /events/
Example:
DELETE https://api.greminders.com/events/<UUID>
HTTP request
DELETE https://api.greminders.com/events/{id}
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Event ID |
Responses
Code | Description |
---|---|
204 | Successful response |
400 | Event cannot be deleted for various reasons, including (Provider Calendar is read only, Event is a Group Event, Event hasn't been approved yet, etc...) |
404 | Event with requested ID does not exist |
500 | Event cannot be deleted due to internal error |
Cancel Event
Cancel Event by ID. This is the equivalent of someone using the cancellation link. This cancel will respect the host notification of the user.
Example:
POST https://api.greminders.com/events/<UUID>/cancel
HTTP request
POST https://api.greminders.com/events/{id}/cancel
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Event ID |
Responses
Code | Description |
---|---|
204 | Successful response |
400 | Event cannot be cancelled for various reasons, including (Event is a Group Event, Event hasn't been approved yet, etc...) |
404 | Event with requested ID does not exist |
500 | Event cannot be cancelled due to internal error |
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 |
Required 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 |
Update Event Reply Status
Update Event Reply Status. This is the same action as a client confirming or declining an appointment via Email/SMS/Voice replies OR manually in the App UI. If you confirm/decline at the Event level the entire Event will be confirmed or declined.
Example:
PUT https://api.greminders.com/events/<UUID>/reply_status
{
"action": "confirm",
}
HTTP request
PUT https://api.greminders.com/events/{id}/reply_status
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Event ID |
Required query parameters
Parameter | Description |
---|---|
action string |
Can take the value "confirm", "decline" or "reset". Only for events that are not pending confirmation. |
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 |
Required 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 Reply Status
Update Event Registrant Reply Status. This is the same action as a client confirming or declining an appointment via Email/SMS/Voice replies OR manually in the App UI. For all non group events, confirming or declining for a specific Event Registrant will confirm/decline the entire Event. For Group Events each registrant is responsible for confirm/decline and this will not affect the entire Event.
Example:
PUT https://api.greminders.com/events/<UUID>/registrant/<UUID>/reply_status
{
"action": "confirm",
}
HTTP request
PUT https://api.greminders.com/events/{event_id}/registrant/{registrant_id}/reply_status
Path parameters
Parameter | Description |
---|---|
event_id uuid |
Internal Event ID |
registrant_id uuid |
Internal Event Registrant ID |
Required query parameters
Parameter | Description |
---|---|
action string |
Can take the value "confirm", "decline" or "reset". Only for events that are not pending confirmation. |
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&sort=name:asc,active:asc
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.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name, active.
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
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&sort=name:asc
HTTP request
GET https://api.greminders.com/teams
Optional query parameters
Parameter | Description |
---|---|
q string |
Text search string by Team name |
Standard Pagination parameters are used.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name.
Example:
{
"results": [
{
"id": <UUID>,
...
},
{
"id": <UUID>,
...
}
],
"paging": {
"current": "https://api.greminders.com/teams?limit=25&offset=0&q=name"
}
}
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&sort=name:asc,active:asc
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.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name, active.
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
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&sort=active:asc
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.
Standard Sorting parameters are used. The following parameters are allowed for sorting: active.
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&sort=first_name:asc,last_name:asc,email:asc,active:asc
HTTP request
GET https://api.greminders.com/users
Optional query parameters
Parameter | Description |
---|---|
q string |
text search string (optional) |
Standard Pagination parameters are used.
Standard Sorting parameters are used. The following parameters are allowed for sorting: first_name, last_name, email, active.
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 |
|
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&sort=name:asc
HTTP request
GET https://api.greminders.com/profiles
Standard Pagination parameters are used.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name.
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 |
Routing Forms API
List Routing Forms
Get a list of Routing forms
Example:
GET https://api.greminders.com/routing-forms?limit=25&offset=0&q=name
HTTP request
GET https://api.greminders.com/routing-forms
Optional query parameters
Parameter | Description |
---|---|
q string |
Text search string by Routing form name |
Standard Pagination parameters are used.
Example:
{
"results": [
{
"id": <UUID>,
...
},
{
"id": <UUID>,
...
}
],
"paging": {
"current": "https://api.greminders.com/routing-forms?limit=25&offset=0&q=name"
}
}
Responses
Returns list of Routing form objects and a Pagination response object.
Code | Description |
---|---|
200 | Successful response |
Get Routing form
Get Routing form by ID
Example:
GET https://api.greminders.com/routing-forms/<UUID>
HTTP request
GET https://api.greminders.com/routing-forms/{id}
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Routing form ID |
Example:
{
"id": <UUID>,
"active": true,
"url": "https://app.greminders.com/o/short_name",
"shortname": "short_name",
"name": "routing form name",
"description": "description for routing form",
"created_date": "2024-01-22T08:15:44+00:00",
"updated_date": "2024-01-22T08:15:50+00:00",
"last_booked": "2024-01-22T13:12:26+00:00",
"times_used": 1,
}
Responses
Returns Routing form object
Code | Description |
---|---|
200 | Successful response |
404 | Routing form with requested ID does not exist |
Webhooks API
List Webhooks
Get a list of Webhooks
Example:
GET https://api.greminders.com/webhooks?limit=25&offset=0&sort=name:asc
HTTP request
GET https://api.greminders.com/webhooks
Standard Pagination parameters are used.
Standard Sorting parameters are used. The following parameters are allowed for sorting: name.
Example:
{
"results": [
{
"id": <UUID>,
...
},
{
"id": <UUID>,
...
}
],
"paging": {
"current": "https://api.greminders.com/webhooks?limit=25&offset=0&q=name"
}
}
Responses
Returns list of Webhook objects and a Pagination response object.
Code | Description |
---|---|
200 | Successful response |
403 | You do not have permission for this |
Get Webhook
Get Webhook by ID
Example:
GET https://api.greminders.com/webhooks/<UUID>
HTTP request
GET https://api.greminders.com/webhooks/{id}
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Webhook ID |
Example:
{
"id": "df4394fc-fb39-4b45-88cd-3b727d7d7aae",
"name": "Webhook Name",
"url": "https://receiving-endpoint.example",
"triggers": {
"event": [
"created",
"updated",
"deleted"
],
"event_type": [
"created",
"updated",
"deleted"
],
"user": [
"created",
"updated",
"deleted"
],
"notification": [
"created",
"updated"
]
},
"trigger_for_events": "all",
"active": true,
"created_date": "2024-06-05T10:35:20+00:00",
"updated_date": "2024-06-05T10:35:20+00:00",
"signing_secret": "06fd05aaf876b615adf64525971012ff2916d2e4e885f54ceb90855b68c5d25f"
}
Responses
Returns Webhook object
Code | Description |
---|---|
200 | Successful response |
403 | You do not have permission for this |
404 | Webhook with requested ID does not exist |
Create Webhook
Create new Webhook
Example:
POST https://api.greminders.com/webhooks
{
"name": "Webhook Name",
"url": "https://receiving-endpoint.example"
"triggers": "{\"event\":[\"created\",\"updated\",\"deleted\"],...}"
"trigger_for_events": "all"
"active": true
}
HTTP request
POST https://api.greminders.com/webhooks
Required body parameters
Parameter | Description |
---|---|
name string |
Name of new Webhook |
url string |
Webhook receiving endpoint URL |
triggers string |
A JSON string with the following structure: '{ "object_type": [ "object_event", ... ], ... }' |
trigger_for_events string |
For which objects is the webhook (value 'all' or 'greminders', default: 'all') |
active bool |
Active Flag (default: false) |
Example:
{
"id": "df4394fc-fb39-4b45-88cd-3b727d7d7aae",
"name": "Webhook Name",
"url": "https://receiving-endpoint.example",
"triggers": {
"event": [
"created",
"updated",
"deleted"
],
"event_type": [
"created",
"updated",
"deleted"
],
"user": [
"created",
"updated",
"deleted"
],
"notification": [
"created",
"updated"
]
},
"trigger_for_events": "all",
"active": true,
"created_date": "2024-06-05T10:35:20+00:00",
"updated_date": "2024-06-05T10:35:20+00:00",
"signing_secret": "06fd05aaf876b615adf64525971012ff2916d2e4e885f54ceb90855b68c5d25f"
}
Responses
Returns Webhook object
Code | Description |
---|---|
200 | Successful response |
400 | Some of the parameters are specified incorrectly |
403 | You do not have permission for this |
Update Webhook
Update Webhook data
Example:
PUT https://api.greminders.com/webhooks/<UUID>
{
{
"name": "Webhook Name",
"url": "https://receiving-endpoint.example"
"triggers": "{\"event\":[\"created\",\"updated\",\"deleted\"],...}"
"trigger_for_events": "all"
"active": true
}
}
HTTP request
PUT https://api.greminders.com/webhooks/{id}
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Webhook ID |
Optional body parameters
Parameter | Description |
---|---|
name string |
Name of new Webhook |
url string |
Webhook receiving endpoint URL |
triggers string |
A JSON string with the following structure: '{ "object_type": [ "object_event", ... ], ... }' |
trigger_for_events string |
For which objects is the webhook (value 'all' or 'greminders', default: 'all') |
active bool |
Active Flag (default: false) |
Example:
{
"id": "df4394fc-fb39-4b45-88cd-3b727d7d7aae",
"name": "Webhook Name",
"url": "https://receiving-endpoint.example",
"triggers": {
"event": [
"created",
"updated",
"deleted"
],
"event_type": [
"created",
"updated",
"deleted"
],
"user": [
"created",
"updated",
"deleted"
],
"notification": [
"created",
"updated"
]
},
"trigger_for_events": "all",
"active": true,
"created_date": "2024-06-05T10:35:20+00:00",
"updated_date": "2024-06-05T10:35:20+00:00",
"signing_secret": "06fd05aaf876b615adf64525971012ff2916d2e4e885f54ceb90855b68c5d25f"
}
Responses
Returns Webhook object
Code | Description |
---|---|
200 | Successful response |
400 | Some of the parameters are specified incorrectly |
403 | You do not have permission for this |
404 | Webhook with requested ID does not exist |
Delete Webhook
Delete Webhook
Example:
DELETE https://api.greminders.com/webhooks/<UUID>
HTTP request
DELETE https://api.greminders.com/webhooks/{id}
Path parameters
Parameter | Description |
---|---|
id uuid |
Internal Webhook ID |
Responses
Code | Description |
---|---|
204 | Successful response |
403 | You do not have permission for this |
404 | Webhook with requested ID does not exist |
Regenerate Signing Secret
Regenerate signing secret
Example:
GET https://api.greminders.com/webhooks/regenerate-signing-secret
HTTP request
get https://api.greminders.com/webhooks/regenerate-signing-secret
Example:
{
"signing_secret": "06fd05aaf876b615adf64525971012ff2916d2e4e885f54ceb90855b68c5d25f"
}
Responses
Returns object with Signing Secret
Code | Description |
---|---|
204 | Successful response |
403 | You do not have permission for this |