iCalendar Event (icalendar_event_v1)

Individual events in an icalendar. See icalendar_calendar_v1.

To get set up, run this code from the WebhookDB CLI:

webhookdb integrations create icalendar_event_v1

Source documentation for this API: https://icalendar.org/

Features

Depends on
To use this replicator, you will need icalendar_calendar_v1. You'll be prompted to create it if you haven't.
Supports Webhooks
Supports Backfilling

Schema

Tables replicated from iCalendar Events have this schema. Note that the data types listed are for Postgres; when replicating to other databases, other data types maybe used.

Column Type Indexed
pk bigint  
compound_identity text
calendar_external_id text
uid text
row_updated_at timestamptz
last_modified_at timestamptz
created_at timestamptz  
start_at timestamptz
missing_timezone boolean  
end_at timestamptz
start_date date
end_date date
status text  
categories text[]  
priority integer  
geo_lat numeric  
geo_lng numeric  
classification text  
recurring_event_id text
recurring_event_sequence integer  
data* jsonb  

* The data column contains the raw payload from the webhook or API. In many cases there is no canonical form, like if a webhook and API request return two different versions of the same resource. In that case we try to keep the most coherent and detailed resource.”

Table definition

This definition can also be generated through webhookdb fixture icalendar_event_v1.

CREATE TABLE public.icalendar_event_v1_fixture (
  pk bigserial PRIMARY KEY,
  compound_identity text UNIQUE NOT NULL,
  calendar_external_id text,
  uid text,
  row_updated_at timestamptz,
  last_modified_at timestamptz,
  created_at timestamptz,
  start_at timestamptz,
  missing_timezone boolean,
  end_at timestamptz,
  start_date date,
  end_date date,
  status text,
  categories text[],
  priority integer,
  geo_lat numeric,
  geo_lng numeric,
  classification text,
  recurring_event_id text,
  recurring_event_sequence integer,
  data jsonb NOT NULL
);
CREATE INDEX IF NOT EXISTS svi_fixture_compound_identity_idx ON public.icalendar_event_v1_fixture (compound_identity);
CREATE INDEX IF NOT EXISTS svi_fixture_calendar_external_id_idx ON public.icalendar_event_v1_fixture (calendar_external_id);
CREATE INDEX IF NOT EXISTS svi_fixture_uid_idx ON public.icalendar_event_v1_fixture (uid);
CREATE INDEX IF NOT EXISTS svi_fixture_row_updated_at_idx ON public.icalendar_event_v1_fixture (row_updated_at);
CREATE INDEX IF NOT EXISTS svi_fixture_last_modified_at_idx ON public.icalendar_event_v1_fixture (last_modified_at);
CREATE INDEX IF NOT EXISTS svi_fixture_start_at_idx ON public.icalendar_event_v1_fixture (start_at) WHERE ("start_at" IS NOT NULL);
CREATE INDEX IF NOT EXISTS svi_fixture_end_at_idx ON public.icalendar_event_v1_fixture (end_at) WHERE ("end_at" IS NOT NULL);
CREATE INDEX IF NOT EXISTS svi_fixture_start_date_idx ON public.icalendar_event_v1_fixture (start_date) WHERE ("start_date" IS NOT NULL);
CREATE INDEX IF NOT EXISTS svi_fixture_end_date_idx ON public.icalendar_event_v1_fixture (end_date) WHERE ("end_date" IS NOT NULL);
CREATE INDEX IF NOT EXISTS svi_fixture_recurring_event_id_idx ON public.icalendar_event_v1_fixture (recurring_event_id) WHERE ("recurring_event_id" IS NOT NULL);
CREATE INDEX IF NOT EXISTS svi_fixture_calendar_external_id_start_at_end_at_idx ON public.icalendar_event_v1_fixture (calendar_external_id, start_at, end_at) WHERE (("status" IS DISTINCT FROM 'CANCELLED') AND ("start_at" IS NOT NULL));
CREATE INDEX IF NOT EXISTS svi_fixture_calendar_external_id_start_date_end_date_idx ON public.icalendar_event_v1_fixture (calendar_external_id, start_date, end_date) WHERE (("status" IS DISTINCT FROM 'CANCELLED') AND ("start_date" IS NOT NULL));