Skip to main content
PUT
/
events
/
{eventId}
Update event
curl --request PUT \
  --url https://api.smokeball.com/events/{eventId} \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json-patch+json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "matterId": "b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2",
  "subject": "Subject",
  "description": "Description",
  "location": "Location",
  "allDay": false,
  "nonBillable": false,
  "type": "Normal",
  "eventType": "0",
  "attendees": [
    "<string>"
  ],
  "externalAttendees": [
    "<string>"
  ],
  "startTime": "2000-01-01T20:00:00",
  "endTime": "2000-01-01T20:00:00",
  "timeZone": "Australia/Sydney",
  "additionalData": {}
}
'
import requests

url = "https://api.smokeball.com/events/{eventId}"

payload = {
"matterId": "b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2",
"subject": "Subject",
"description": "Description",
"location": "Location",
"allDay": False,
"nonBillable": False,
"type": "Normal",
"eventType": "0",
"attendees": ["<string>"],
"externalAttendees": ["<string>"],
"startTime": "2000-01-01T20:00:00",
"endTime": "2000-01-01T20:00:00",
"timeZone": "Australia/Sydney",
"additionalData": {}
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
matterId: 'b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2',
subject: 'Subject',
description: 'Description',
location: 'Location',
allDay: false,
nonBillable: false,
type: 'Normal',
eventType: '0',
attendees: ['<string>'],
externalAttendees: ['<string>'],
startTime: '2000-01-01T20:00:00',
endTime: '2000-01-01T20:00:00',
timeZone: 'Australia/Sydney',
additionalData: {}
})
};

fetch('https://api.smokeball.com/events/{eventId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smokeball.com/events/{eventId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'matterId' => 'b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2',
'subject' => 'Subject',
'description' => 'Description',
'location' => 'Location',
'allDay' => false,
'nonBillable' => false,
'type' => 'Normal',
'eventType' => '0',
'attendees' => [
'<string>'
],
'externalAttendees' => [
'<string>'
],
'startTime' => '2000-01-01T20:00:00',
'endTime' => '2000-01-01T20:00:00',
'timeZone' => 'Australia/Sydney',
'additionalData' => [

]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.smokeball.com/events/{eventId}"

payload := strings.NewReader("{\n \"matterId\": \"b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2\",\n \"subject\": \"Subject\",\n \"description\": \"Description\",\n \"location\": \"Location\",\n \"allDay\": false,\n \"nonBillable\": false,\n \"type\": \"Normal\",\n \"eventType\": \"0\",\n \"attendees\": [\n \"<string>\"\n ],\n \"externalAttendees\": [\n \"<string>\"\n ],\n \"startTime\": \"2000-01-01T20:00:00\",\n \"endTime\": \"2000-01-01T20:00:00\",\n \"timeZone\": \"Australia/Sydney\",\n \"additionalData\": {}\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.smokeball.com/events/{eventId}")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"matterId\": \"b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2\",\n \"subject\": \"Subject\",\n \"description\": \"Description\",\n \"location\": \"Location\",\n \"allDay\": false,\n \"nonBillable\": false,\n \"type\": \"Normal\",\n \"eventType\": \"0\",\n \"attendees\": [\n \"<string>\"\n ],\n \"externalAttendees\": [\n \"<string>\"\n ],\n \"startTime\": \"2000-01-01T20:00:00\",\n \"endTime\": \"2000-01-01T20:00:00\",\n \"timeZone\": \"Australia/Sydney\",\n \"additionalData\": {}\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.smokeball.com/events/{eventId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"matterId\": \"b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2\",\n \"subject\": \"Subject\",\n \"description\": \"Description\",\n \"location\": \"Location\",\n \"allDay\": false,\n \"nonBillable\": false,\n \"type\": \"Normal\",\n \"eventType\": \"0\",\n \"attendees\": [\n \"<string>\"\n ],\n \"externalAttendees\": [\n \"<string>\"\n ],\n \"startTime\": \"2000-01-01T20:00:00\",\n \"endTime\": \"2000-01-01T20:00:00\",\n \"timeZone\": \"Australia/Sydney\",\n \"additionalData\": {}\n}"

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "href": "<string>",
  "relation": "<string>",
  "method": "GET"
}
{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}

Authorizations

x-api-key
string
header
required
Authorization
string
header
required

Path Parameters

eventId
string
required

Body

matterId
string | null

Matter Id.

Example:

"b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2"

subject
string | null

Subject of event.

Example:

"Subject"

description
string | null

Description of event.

Example:

"Description"

location
string | null

Location of event.

Example:

"Location"

allDay
boolean

Whether or not the event is all day.

Example:

false

nonBillable
boolean

Whether or not the event is billable. Note events with a duration greater than 12 hours automatically become non-billable.

Example:

false

type
enum<string> | null

The type of the event.

We currently support create and updates requests for non recurring events (type = Normal).

Available options:
Normal,
Pattern,
Occurrence,
ChangedOccurrence,
DeletedOccurrence
Example:

"Normal"

eventType
enum<string> | null
deprecated

Deprecated. Use type instead.

The type of the event.

We currently support create and updates requests for non recurring events (EventType = 0).

Available options:
Normal,
Pattern,
Occurrence,
ChangedOccurrence,
DeletedOccurrence
Example:

"0"

attendees
string[] | null

The staff Ids of the attendees of the event.

externalAttendees
string[] | null

The contact Ids of the external or third party attendees of the event.

The contacts must be of Person type and must be part of the matter.

startTime
string<date-time>

Start date and time of the event. Supported date format is ISO YYYY-MM-DDThh:mm:ss. Note: date and time will correlate with the time zone provided.

Example:

"2000-01-01T20:00:00"

endTime
string<date-time>

End date and time of the event. Supported date format is ISO YYYY-MM-DDThh:mm:ss. Note: date and time will correlate with the time zone provided.

Example:

"2000-01-01T20:00:00"

timeZone
string | null

Time zone of the event for determining the start time and end time. Time zones are expected in the IANA time zone format. For a list of valid time zones, see https://nodatime.org/TimeZones.

Example:

"Australia/Sydney"

additionalData
object | null

Collection of key value pairs to update file meta data.

Response

When request is accepted. Returns a hypermedia 'Link' object of the event to be updated.

id
string | null
href
string | null
relation
string | null
method
string | null
default:GET