datasette-ics
Datasette plugin that adds support for generating iCalendar .ics files with the results of a SQL query.
Installation
Install this plugin in the same environment as Datasette to enable the .ics
output extension.
$ pip install datasette-ics
Usage
To create an iCalendar file you need to define a custom SQL query that returns a required set of columns:
event_name
- the short name for the eventevent_dtstart
- when the event starts
The following columns are optional:
event_dtend
- when the event endsevent_duration
- the duration of the event (use instead ofdtend
)event_description
- a longer description of the eventevent_uid
- a globally unique identifier for this eventevent_tzid
- the timezone for the event, e.g.America/Chicago
A query that returns these columns can then be returned as an ics feed by adding the .ics
extension.
Using a canned query
Datasette's canned query mechanism can be used to configure calendars. If a canned query definition has a title
that will be used as the title of the calendar.
Here's an example, defined using a metadata.yaml
file:
databases:
mydatabase:
queries:
calendar:
title: My Calendar
sql: |-
select
title as event_name,
start as event_dtstart,
description as event_description
from
events
order by
start
limit
100
This will result in a calendar feed at http://localhost:8001/mydatabase/calendar.ics