Calendar APIs
22 calendar APIs for holidays, calendars and scheduling, best documented first.
Google Calendar
CalendarDisplay, create and modify Google calendar events
UK Bank Holidays
CalendarBank holidays in England and Wales, Scotland and Northern Ireland
Hebrew Calendar
CalendarConvert between Gregorian and Hebrew, fetch Shabbat and Holiday times, etc
Non-Working Days
CalendarSimple REST API for checking working, non-working or short days for Russia, CIS, USA and other
Holidays
CalendarHistorical data regarding holidays
Namedays Calendar
CalendarProvides namedays for multiple countries
Non-Working Days
CalendarDatabase of ICS files for non working days
Russian Calendar
CalendarCheck if a date is a Russian holiday or not
Calendarific
CalendarExplore comprehensive holiday data worldwide with Calendarific. Access national holidays, local observances, and religious events with customizable API solutions for your needs.
caldays
CalendarPublic holidays for 195+ countries
Church Calendar
CalendarCatholic liturgical calendar
Intellibook
CalendarAppointment booking and availability API for salons and clinics
The Calendar
CalendarPublic holidays for US states and 30 countries plus sports and finance calendars as static JSON
Checkiday - National Holiday
CalendarIndustry-leading holiday data with over 5,000 holidays and thousands of descriptions
Public Holidays
CalendarData on national, regional, and religious holidays via API
Apacta
CalendarAPI for a tool to craftsmen used to register working hours, material usage and quality assurance. # Endpoint The endpoint `https://app.apacta.com/api/v1` should be used to communicate with the API. API access is only allowed with SSL encrypted connection (https). # Authentication URL query authentication with an API key is used, so appending `?api_key={api_key}` to the URL where `{api_key}` is found within Apacta settings is used for authentication # Pagination If the endpoint returns a `pagination` object it means the endpoint supports pagination - currently it's only possible to change pages with `?page={page_number}` but implementing custom page sizes are on the road map. # Search/filter Is experimental but implemented in some cases - see the individual endpoints' docs for further explanation. # Ordering Is currently experimental, but on some endpoints it's implemented on URL querys so eg. to order Invoices by `invoice_number` appending `?sort=Invoices.invoice_number&direction=desc` would sort the list descending by the value of `invoice_number`. # Associations Is currently implemented on an experimental basis where you can append eg. `?include=Contacts,Projects` to the `/api/v1/invoices/` endpoint to embed `Contact` and `Project` objects directly. # Project Files Currently project files can be retrieved from two endpoints. `/projects/{project_id}/files` handles files uploaded from wall posts or forms. `/projects/{project_id}/project_files` allows uploading and showing files, not belonging to specific form or wall post. # Errors/Exceptions ## 422 (Validation) Write something about how the `errors` object contains keys with the properties that failes validation like: ``` { "success": false, "data": { "code": 422, "url": "/api/v1/contacts?api_key=5523be3b-30ef-425d-8203-04df7caaa93a", "message": "A validation error occurred", "errorCount": 1, "errors": { "contact_types": [ ## Property name that failed validation "Contacts must have at least one contact type" ## Message with further explanation ] } } } ``` ## Code examples Running examples of how to retrieve the 5 most recent forms registered and embed the details of the User that made the form, and eventual products contained in the form ### Swift ``` ``` ### Java #### OkHttp ``` OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5") .get() .addHeader("x-auth-token", "{INSERT_YOUR_TOKEN}") .addHeader("accept", "application/json") .build(); Response response = client.newCall(request).execute(); ``` #### Unirest ``` HttpResponse<String> response = Unirest.get("https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5") .header("x-auth-token", "{INSERT_YOUR_TOKEN}") .header("accept", "application/json") .asString(); ``` ### Javascript #### Native ``` var data = null; var xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", function () { if (this.readyState === 4) { console.log(this.responseText); } }); xhr.open("GET", "https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5"); xhr.setRequestHeader("x-auth-token", "{INSERT_YOUR_TOKEN}"); xhr.setRequestHeader("accept", "application/json"); xhr.send(data); ``` #### jQuery ``` var settings = { "async": true, "crossDomain": true, "url": "https://app.apacta.com/api/v1/forms?extended=true&sort=Forms.created&direction=DESC&include=Products%2CCreatedBy&limit=5", "method": "GET", "headers": { "x-auth-token": "{INSERT_YOUR_TOKEN}", "accept": "application/json", } } $.ajax(settings).done(function (response) { console.log(response); }); ``` #### NodeJS (Request) ``` var request = require("request"); var options = { method: 'GET', url: 'https://app.apacta.com/api/v1/forms', qs: { extended: 'true', sort: 'Forms.created', direction: 'DESC', include:
CountdownsHQ
CalendarDates and timezone-correct live countdowns for 150+ holidays and observances in 18 countries
DigiDates
CalendarVarious date and time calculations
OpenHolidays API
CalendarPublic and school holidays for many countries via an open REST API
Business Box
CalendarBooking API for small businesses in Japan: event types, open slots, bookings, invite links and webhooks, with API keys on the free plan
Generate iCAL
CalendarGenerates iCal calendar events that can be used across calendar applications
India Public Holidays
CalendarOfficial Indian public holidays for the Central government and 36 states/UTs