Less Annoying CRM logo Less Annoying CRM LACRM
Core API Functions

Events

Events are used to schedule times on your calendar. They work pretty much like any other calendar (e.g. Outlook or Google Calendar) except that they can be linked directly to contacts/companies in your CRM.

Unlike tasks, events are automatically considered to be "completed" whenever they end. Because of this, events are best for things that have specific start and end times whereas tasks are better for things you will handle sometime during the day, but that aren't specifically schedule.

Create an event

This function will create an event on your calendar or the calendar of another user you have permission to edit.

How to call this function
Function name
CreateEvent
Parameters
Name Text Required

The name of the event. This is displayed with the event on the calendar.

StartDate DateTime Required

The start date and time of the event. For all-day events, the time will be ignored. If included, the timezone set for the StartDate will be used as the timezone for the event.

EndDate DateTime Required

The end date and time of the event. For all-day events, the time will be ignored.

IsAllDay Bool Default: false

Whether or not this is an all day event.

Location Text

The location of the event.

Description Text

A description of the event.

CalendarId Uid

The calendar on which this event will attached to. Only pass in if you are attending the event; if no calendar is passed in, we will default to your primary calendar.

Attendees Array of objects Default: Array

An array of attendees with their Id, their corresponding attendance status and IsUser which denotes whether the attendee is a User, otherwise the attendee is a contact.

Each item in the array should be an object with the following fields:
IsUser Bool

Is true if this attendee is a user, else attendee is a contact

AttendeeId Uid

UserId or ContactId of this attendee

AttendanceStatus Enum
Valid options: IsAttending, Maybe, NotAttending,

Whether this contact is attending the event.

IsRecurring Bool Default: false

Whether or not this is a repeating (recurring) event on your calendar. If true, a RecurrenceRule will also need to be specified.

RecurrenceRule Text Default: NULL

The rule to determine how frequently this event recurs. This is required if you are creating a recurring event. For more information on recurrence rules, click here (?).

EndRecurrenceRule DateTime

The last date this recurring event should appear on your calendar. Not to be confused with EndDate which sets when a single instance of an event will end.

Response
{
"EventId": "3862519930846651584767155819011"
}

Edit an event

This function will update an existing event.

How to call this function
Function name
EditEvent
Parameters
EventId Uid Required

The id of the event to update.

Name Text

The name of the event. This is displayed with the event on the calendar.

StartDate DateTime

The start date and time of the event. For all-day events, the time will be ignored.

EndDate DateTime

The end date and time of the event. For all-day events, the time will be ignored.

IsAllDay Bool

Whether or not this is an all day event.

Location Text

The location of the event.

Description Text

A description of the event.

CalendarId Uid

The calendar on which this event will attached to.

Attendees Array of objects

An array of attendees with their Id, their corresponding attendance status and IsUser which denotes whether the attendee is a User, otherwise the attendee is a contact.

Each item in the array should be an object with the following fields:
IsUser Bool

Is true if this attendee is a user, else attendee is a contact

AttendeeId Uid

UserId or ContactId of this attendee

AttendanceStatus Enum
Valid options: IsAttending, Maybe, NotAttending,

Whether this contact is attending the event.

RecurrenceRule Text

The rule to determine how frequently this event recurs. This is required if you are creating a recurring event. For more information on recurrence rules, click here (?).

EndRecurrenceRule DateTime

The last date this recurring event should appear on your calendar. Not to be confused with EndDate which sets when a single instance of an event will end.

Response
This function doesn't return anything. If there's no error message returned, that means the call was completed successfully.

Delete an event

This function will delete an event from your calendar, as well as the calendars of any other attending user. If you want to remove yourself from an event, use EditEvent instead.

How to call this function
Function name
DeleteEvent
Parameters
EventId Uid Required

The Id of the event you want to delete.

Response
This function doesn't return anything. If there's no error message returned, that means the call was completed successfully.

Get an event

This function gets a single event from the calendar based on the Id of the event. If you don't already know the EventId, you can find events using GetEvents or GetEventsAttachedToContact.

How to call this function
Function name
GetEvent
Parameters
EventId Uid Required

The Id of the event you want to get.

Response
{
"EventId": "3862519930869710014859292947221",
"Name": "",
"StartDate": "2023-01-30T09:50:00-08:00",
"EndDate": "2023-01-30T09:50:00-08:00",
"Location": "",
"Description": "",
"IsAllDay": false,
"IsRecurring": false,
"RecurrenceEventId": "3862519930869710014859292229152",
"RecurrenceRule": "",
"EndRecurrenceDate": "2023-01-30T09:50:00-08:00",
"SeriesNumber": 10,
"DateCreated": "2023-01-30T09:50:00-08:00",
"DateUpdated": "2023-01-30T09:50:00-08:00",
"ContactIds": [
3862519930872015857868505410313,
3862519930872015857868506895042,
3862519930872015857868506416092
],
"UserIds": [
3862519930874321700877719465186,
3862519930874321700877718962127,
3862519930874321700877718881404
],
"Attendees": [
{
"IsUser": false,
"AttendeeId": "3862519930874321700877718585714",
"AttendanceStatus": ""
},
{...},
{...}
]
"CalendarId": "3862519930876627543886932594879",
"ContactMetaData": [
{
"Name": "John Doe"
},
{...},
{...}
]
"UserMetaData": [
{
"FirstName": "Your",
"LastName": "Name"
},
{...},
{...}
]
"CalendarMetaData": {
"Name": "Primary calendar"
}
}

List all events

This function will get all events between a date range; will return all visible events by default, but can be filtered by calendar, contact, or user.

How to call this function
Function name
GetEvents
Parameters
SortDirection Enum Default: Ascending
Valid options: Ascending, Descending

Whether the results should be sorted in ascending or descending order.

StartDate DateTime Default: NULL

The start date (inclusive) of the range of events you want to retrieve.

EndDate DateTime Default: NULL

The end date (inclusive) of the range of events you want to retrieve.

UserIds Array of Uids Default: Array

If you'd like to only see events assigned to specific users, pass their UserIds into this field and we'll filter the results to only show those users' events.

CalendarFilter Array of Uids Default: NULL

If you want to fetch the events for a single calendar, pass in the CalendarIds of the calendars you'd like to fetch events for. Only works for your own calendars.

ContactId Uid Default: NULL

If you specify this parameter, only events attached to this contact will be returned. Alternatively, you can call GetEventsAttachedToContact to get the same results.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
{
"HasMoreResults": false,
"Results": [
{
"EventId": "3862519930897380130969856038866",
"Name": "",
"StartDate": "2023-01-30T09:50:00-08:00",
"EndDate": "2023-01-30T09:50:00-08:00",
"Location": "",
"Description": "",
"IsAllDay": false,
"IsRecurring": false,
"RecurrenceEventId": "3862519930897380130969856535596",
"RecurrenceRule": "",
"EndRecurrenceDate": "2023-01-30T09:50:00-08:00",
"SeriesNumber": 10,
"DateCreated": "2023-01-30T09:50:00-08:00",
"DateUpdated": "2023-01-30T09:50:00-08:00",
"ContactIds": [
3862519930897380130969856076150,
3862519930899685973979070591250,
3862519930899685973979069884561
],
"UserIds": [
3862519930901991816988284060562,
3862519930901991816988283032030,
3862519930904297659997496842303
],
"Attendees": [
{
"IsUser": false,
"AttendeeId": "3862519930904297659997497168001",
"AttendanceStatus": ""
},
{...},
{...}
]
"CalendarId": "3862519930904297659997497735534",
"ContactMetaData": [
{
"Name": "John Doe"
},
{...},
{...}
]
"UserMetaData": [
{
"FirstName": "Your",
"LastName": "Name"
},
{...},
{...}
]
"CalendarMetaData": {
"Name": "Primary calendar"
}
},
{...},
{...}
]
}

Get contact events

Returns all events for a contact.

How to call this function
Function name
GetEventsAttachedToContact
Parameters
ContactId Uid Required

The contact to get events for.

MaxNumberOfResults Number Default: 500

How many results should be returned from a single API call? The max value is 10,000. If you need to return more results, call this API function again, but increment the Page parameter.

Page Number Default: 1

If there are more results than MaxNumberOfResults, you can call this function again with an incremented Page value to get the next page of results. For example, if there are 700 results, but you're only requesting 500 at a time, you could call this function with Page=2 to get the remaining 200 results.

Response
{
"HasMoreResults": false,
"Results": [
{
"EventId": "3862519930922744404071207108126",
"Name": "",
"StartDate": "2023-01-30T09:50:00-08:00",
"EndDate": "2023-01-30T09:50:00-08:00",
"Location": "",
"Description": "",
"IsAllDay": false,
"IsRecurring": false,
"RecurrenceEventId": "3862519930922744404071206926680",
"RecurrenceRule": "",
"EndRecurrenceDate": "2023-01-30T09:50:00-08:00",
"SeriesNumber": 10,
"DateCreated": "2023-01-30T09:50:00-08:00",
"DateUpdated": "2023-01-30T09:50:00-08:00",
"ContactIds": [
3862519930925050247080421050509,
3862519930925050247080421582125,
3862519930925050247080419876339
],
"UserIds": [
3862519930925050247080420090848,
3862519930925050247080420417575,
3862519930927356090089635396536
],
"Attendees": [
{
"IsUser": false,
"AttendeeId": "3862519930927356090089634539898",
"AttendanceStatus": ""
},
{...},
{...}
]
"CalendarId": "3862519930927356090089633873721",
"ContactMetaData": [
{
"Name": "John Doe"
},
{...},
{...}
]
"UserMetaData": [
{
"FirstName": "Your",
"LastName": "Name"
},
{...},
{...}
]
"CalendarMetaData": {
"Name": "Primary calendar"
}
},
{...},
{...}
]
}
Next page: Group Memberships