一个 Datasette 插件,支持使用 SQL 查询结果生成 iCalendar .ics 文件。
将此插件安装到与 Datasette 相同的环境中,以启用 .ics 输出扩展。
$ pip install datasette-ics
要创建 iCalendar 文件,您需要定义一个自定义 SQL 查询,该查询返回一组必需的列
event_name- 事件的简称event_dtstart- 事件开始时间
以下列是可选的
event_dtend- 事件结束时间event_duration- 事件持续时间(取代dtend使用)event_description- 事件的详细描述event_uid- 此事件的全局唯一标识符event_tzid- 事件的时区,例如America/Chicago
返回这些列的查询可以通过添加 .ics 扩展名来作为 ics feed 返回。
这个 SQL 查询计算了加利福尼亚州半月湾(Half Moon Bay)Pillar Point 每天的最低潮汐。
由于此查询返回 event_name、event_dtstart 和 event_tzid 列,因此它可以生成 此 ICS feed。如果您在 Apple 日历等日历应用程序中订阅此 feed,您将看到类似这样的结果:
Datasette 的预设查询机制可用于配置日历。如果预设查询定义包含 title 字段,该字段将用作日历的标题。
这是一个示例,使用 metadata.yaml 文件定义:
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这将生成一个位于 https://:8001/mydatabase/calendar.ics 的日历 feed。
