Create recurring requests
curl --request POST \
--url https://api.absentify.com/api/v1/requests/recurring \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"leave_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requester_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"interval": 50,
"from": "<string>",
"until": "<string>",
"count": 183,
"weekDays": "<string>",
"day": 16,
"month": 6,
"pos": 2,
"reason": "<string>",
"exDates": [
"<string>"
],
"files": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"representative_member_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"ignoreMaximumAbsence": true
}
'import requests
url = "https://api.absentify.com/api/v1/requests/recurring"
payload = {
"leave_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requester_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"interval": 50,
"from": "<string>",
"until": "<string>",
"count": 183,
"weekDays": "<string>",
"day": 16,
"month": 6,
"pos": 2,
"reason": "<string>",
"exDates": ["<string>"],
"files": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"representative_member_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"ignoreMaximumAbsence": True
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
leave_type_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
requester_member_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
interval: 50,
from: '<string>',
until: '<string>',
count: 183,
weekDays: '<string>',
day: 16,
month: 6,
pos: 2,
reason: '<string>',
exDates: ['<string>'],
files: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
representative_member_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
ignoreMaximumAbsence: true
})
};
fetch('https://api.absentify.com/api/v1/requests/recurring', 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.absentify.com/api/v1/requests/recurring",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'leave_type_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'requester_member_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'interval' => 50,
'from' => '<string>',
'until' => '<string>',
'count' => 183,
'weekDays' => '<string>',
'day' => 16,
'month' => 6,
'pos' => 2,
'reason' => '<string>',
'exDates' => [
'<string>'
],
'files' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'representative_member_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'ignoreMaximumAbsence' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/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.absentify.com/api/v1/requests/recurring"
payload := strings.NewReader("{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.post("https://api.absentify.com/api/v1/requests/recurring")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.absentify.com/api/v1/requests/recurring")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"requestIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"recurrenceId": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Requests
Create recurring requests
Create multiple recurring requests based on a recurrence pattern. Note: half_day=‘morning’/‘afternoon’ requires a leave type with leave_unit ‘half_days’ — on a full-day-only ‘days’ leave type it is rejected. Employment period: the series is created all-or-nothing, so a single occurrence that starts before employment_start_date or ends after employment_end_date rejects the whole series with 400 rather than skipping that occurrence. An occurrence straddling either boundary is rejected too, never truncated. The comparison is on calendar days, so both boundary dates are themselves bookable and a null boundary means open ended on that side.
POST
/
requests
/
recurring
Create recurring requests
curl --request POST \
--url https://api.absentify.com/api/v1/requests/recurring \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"leave_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requester_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"interval": 50,
"from": "<string>",
"until": "<string>",
"count": 183,
"weekDays": "<string>",
"day": 16,
"month": 6,
"pos": 2,
"reason": "<string>",
"exDates": [
"<string>"
],
"files": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"representative_member_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"ignoreMaximumAbsence": true
}
'import requests
url = "https://api.absentify.com/api/v1/requests/recurring"
payload = {
"leave_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"requester_member_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"interval": 50,
"from": "<string>",
"until": "<string>",
"count": 183,
"weekDays": "<string>",
"day": 16,
"month": 6,
"pos": 2,
"reason": "<string>",
"exDates": ["<string>"],
"files": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"representative_member_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"ignoreMaximumAbsence": True
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
leave_type_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
requester_member_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
interval: 50,
from: '<string>',
until: '<string>',
count: 183,
weekDays: '<string>',
day: 16,
month: 6,
pos: 2,
reason: '<string>',
exDates: ['<string>'],
files: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
representative_member_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
ignoreMaximumAbsence: true
})
};
fetch('https://api.absentify.com/api/v1/requests/recurring', 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.absentify.com/api/v1/requests/recurring",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'leave_type_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'requester_member_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'interval' => 50,
'from' => '<string>',
'until' => '<string>',
'count' => 183,
'weekDays' => '<string>',
'day' => 16,
'month' => 6,
'pos' => 2,
'reason' => '<string>',
'exDates' => [
'<string>'
],
'files' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'representative_member_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'ignoreMaximumAbsence' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/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.absentify.com/api/v1/requests/recurring"
payload := strings.NewReader("{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.post("https://api.absentify.com/api/v1/requests/recurring")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.absentify.com/api/v1/requests/recurring")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"leave_type_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"requester_member_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"interval\": 50,\n \"from\": \"<string>\",\n \"until\": \"<string>\",\n \"count\": 183,\n \"weekDays\": \"<string>\",\n \"day\": 16,\n \"month\": 6,\n \"pos\": 2,\n \"reason\": \"<string>\",\n \"exDates\": [\n \"<string>\"\n ],\n \"files\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"representative_member_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"ignoreMaximumAbsence\": true\n}"
response = http.request(request)
puts response.read_body{
"created": 123,
"requestIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"recurrenceId": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Body
application/json
Was this page helpful?