cURL
curl --request PUT \
--url https://api.novacal.io/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"username": "<string>",
"email": "jsmith@example.com",
"first_name": "<string>",
"last_name": "<string>",
"avatar": "<string>",
"timezone": "<string>"
}
'import requests
url = "https://api.novacal.io/v1/users/me"
payload = {
"username": "<string>",
"email": "jsmith@example.com",
"first_name": "<string>",
"last_name": "<string>",
"avatar": "<string>",
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
username: '<string>',
email: 'jsmith@example.com',
first_name: '<string>',
last_name: '<string>',
avatar: '<string>',
timezone: '<string>'
})
};
fetch('https://api.novacal.io/v1/users/me', 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.novacal.io/v1/users/me",
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([
'username' => '<string>',
'email' => 'jsmith@example.com',
'first_name' => '<string>',
'last_name' => '<string>',
'avatar' => '<string>',
'timezone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.novacal.io/v1/users/me"
payload := strings.NewReader("{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/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.novacal.io/v1/users/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novacal.io/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"timezone": "<string>",
"time_format": 12,
"start_of_week": 0,
"avatar": "<string>"
}
}Users
Update Current User
Update the authenticated Novacal user’s profile, including username, email, name, avatar, timezone, week start, and time format.
PUT
/
v1
/
users
/
me
cURL
curl --request PUT \
--url https://api.novacal.io/v1/users/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"username": "<string>",
"email": "jsmith@example.com",
"first_name": "<string>",
"last_name": "<string>",
"avatar": "<string>",
"timezone": "<string>"
}
'import requests
url = "https://api.novacal.io/v1/users/me"
payload = {
"username": "<string>",
"email": "jsmith@example.com",
"first_name": "<string>",
"last_name": "<string>",
"avatar": "<string>",
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
username: '<string>',
email: 'jsmith@example.com',
first_name: '<string>',
last_name: '<string>',
avatar: '<string>',
timezone: '<string>'
})
};
fetch('https://api.novacal.io/v1/users/me', 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.novacal.io/v1/users/me",
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([
'username' => '<string>',
'email' => 'jsmith@example.com',
'first_name' => '<string>',
'last_name' => '<string>',
'avatar' => '<string>',
'timezone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.novacal.io/v1/users/me"
payload := strings.NewReader("{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/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.novacal.io/v1/users/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novacal.io/v1/users/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"username\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"avatar\": \"<string>\",\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"timezone": "<string>",
"time_format": 12,
"start_of_week": 0,
"avatar": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
User fields to update.
Fields to update. Send only the fields you want to change. Fields you omit keep their current value.
The unique username for the user (must be unique across users and teams)
Maximum string length:
255Pattern:
^[a-z0-9][a-z0-9\-\._]+[a-z0-9]$The user's email address (must be unique)
Maximum string length:
255The user's first name
Maximum string length:
255The user's last name
Maximum string length:
255Avatar image file (jpeg, png, jpg, svg, max 1024 KB)
The user's timezone (e.g., America/New_York)
The user's preferred time format (12 or 24)
Available options:
12, 24 The day that starts the week (0 for Sunday, 1 for Monday)
Available options:
0, 1