Calendar Events
The calendar resource represents calendar events in Snapbooks. Calendar events are mostly accounting-related events, such as the due date of government reporting (VAT, withholding tax, tax return, shareholder register report, annual accounts submission).
List calendar events
GET /api/v2/calendar
Retrieves the calendar events whose due date falls within a date range. When client_account_id is provided, events are filtered to those that apply to the client account’s organization properties (e.g. VAT-liable, has payroll, has shareholders).
Events come from a fixed table of statutory deadlines, with due dates from January 2023 to February 2029. From 2026, Skatteetaten deadlines that fall on a weekend or public holiday are listed on the next working day, for example 2026-03-16 instead of Sunday 15 March.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
client_account_id |
integer | No | The client account ID. When provided, events are filtered by the client account’s organization properties. Without it, all events in the date range are returned. |
from_date |
string | No | The earliest due date to include, in YYYY-MM-DD format. Defaults to today. |
to_date |
string | No | The latest due date to include, in YYYY-MM-DD format. Defaults to 365 days after from_date. |
with |
string | No | Comma-separated list of optional fields to include. Supported: event_data (only effective when client_account_id is also provided). |
Response
A successful response returns a JSON array of calendar events, sorted by due date ascending:
[
{
"event_type": "WITHHOLDING_TAX_AND_EMPLOYER_CONTRIBUTION",
"if": ["HAS_PAYROLL"],
"due_date": "2026-01-15",
"reporting_period": {
"start_date": "2025-11-01",
"end_date": "2025-12-31"
}
},
{
"event_type": "VAT_REPORTING",
"if": ["IS_VAT_LIABLE", "VAT_REPORTING_BIMONTHLY"],
"due_date": "2026-02-10",
"reporting_period": {
"start_date": "2025-11-01",
"end_date": "2025-12-31"
}
}
]
When with=event_data is requested together with client_account_id, each event includes an event_data object whose shape depends on the event type. For VAT_REPORTING events, it holds the status of the VAT period (see below). For other event types, it is currently an empty object.
{
"event_type": "VAT_REPORTING",
"if": ["IS_VAT_LIABLE", "VAT_REPORTING_BIMONTHLY"],
"due_date": "2026-02-10",
"reporting_period": {
"start_date": "2025-11-01",
"end_date": "2025-12-31"
},
"event_data": {
"last_submission_status": "SUBMITTED",
"tax_account_balance": -12500.0,
"tax_account_movement": -3400.0,
"has_unsettled_activity": true,
"settlement_account_balance": 0.0
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
event_type |
string | The type of calendar event. See the table below. |
if |
array | Organization properties that must all be present on the client account for the event to apply. Only present when applicable: TAX_RETURN events have none and apply to every client account. |
ifnot |
array | Organization properties that must all be absent on the client account for the event to apply. Only present when applicable. |
due_date |
string | The date when the event is due in YYYY-MM-DD format. |
reporting_period |
object | The period this event covers. |
reporting_period.start_date |
string | Start date of the reporting period in YYYY-MM-DD format. |
reporting_period.end_date |
string | End date of the reporting period in YYYY-MM-DD format. |
event_data |
object | Optional, included only when with=event_data is requested. Shape varies by event type. |
VAT Period Status
The event_data of a VAT_REPORTING event. Amounts are in the client account’s accounting currency.
| Field | Type | Description |
|---|---|---|
last_submission_status |
string or null | Status of the latest VAT return for the period: SUBMITTED, APPROVED or PAID. null when no return has one of these statuses. |
tax_account_balance |
number | Sum of the balances on the VAT accounts at the end of the period. |
tax_account_movement |
number | Net change on the VAT accounts during the period. |
has_unsettled_activity |
boolean | true when any single VAT account moved during the period. Reverse-charge lines cancel out in tax_account_movement but still count here. |
settlement_account_balance |
number | Balance on account 2740 at the end of the period. |
Event Types
| Event type | Description |
|---|---|
WITHHOLDING_TAX_AND_EMPLOYER_CONTRIBUTION |
Bi-monthly deadline, applies when the client has payroll. Until 2025 it covers withholding tax and employer contribution. From 2026 it covers the employer contribution only: withholding tax is due the first working day after the deduction, and has no calendar event. |
VAT_REPORTING |
MVA-melding submission deadline. Bi-monthly, annual, or annual primary-industry depending on the client’s reporting frequency. There are no events for clients that report monthly. |
TAX_RETURN |
Annual corporate tax return deadline. |
SHAREHOLDER_REGISTER_REPORT |
Annual RF-1086 aksjonærregisteroppgave deadline. Applies when the client has shareholders. |
ANNUAL_ACCOUNTS_SUBMISSION |
Annual accounts submission deadline. Applies when the client is accounting-obligated. |
Organization Property Flags
The if and ifnot arrays reference organization-level flags on the client account. Common values:
| Flag | Description |
|---|---|
HAS_PAYROLL |
The client account has a payroll frequency set. |
IS_VAT_LIABLE |
The client account is registered for VAT. |
VAT_REPORTING_BIMONTHLY |
The client account reports VAT every two months. |
VAT_REPORTING_ANNUAL |
The client account reports VAT annually. |
PRIMARY_INDUSTRY |
The organization’s industry code is below 10, a primary industry (different annual VAT deadline). |
HAS_SHAREHOLDERS |
The organization is an AS or ASA. |
ACCOUNTING_OBLIGATED |
The organization is an AS, ASA, BRL, BBL, STIFTELSE, SF, VPFOND or PARTRED, and must submit annual accounts. |
Error Responses
| Status | Code | Description |
|---|---|---|
| 400 | common.validation_error |
from_date or to_date is not a valid YYYY-MM-DD date |
| 403 | common.forbidden |
No access to the client account |