td(5) | FreeBSD File Formats Manual | td(5) |
td
—
The configuration file contains directives that configure
parameters of TDcal
as well as configuration of
calendars.
Blank lines as well as lines starting with
‘#
’ are ignored.
Configuration variables shown as
‘B
’ for boolean values may be given
any of the values: ‘false
’,
‘off
’,
‘no
’,
‘0
’,
‘true
’,
‘on
’,
‘yes
’,
‘1
’.
Configuration directives are:
+
’ are
taken as the day before the event. Times between 00:00 and 11:59 and any
times preceded by a ‘-
’ are taken as
the day of the event. The default is
‘off
’. This can be given either as a
global configuration or following a
‘cal
’ directive, in which case it
applies just to that calendar.
off
’ turns off alerts. The
default is ‘60 30 15 5 0
’. This can
be given as either a global configuration or following a
‘cal
’ directive, in which case it
applies just to that calendar.
eucJP
’,
‘iso8859-1
’,
‘koi8-r
’,
‘utf-8
’, etc. Default is
‘utf-8
’. This is ignored when
calendars are loaded from a remote server which should provide the
character set as part of the download.
oaprv
’
directive. Specifies an OAuth
‘client_id
’ for use with a service
that requres OAuth authorization.
oaprv
’
directive. Specifies an OAuth
‘client_secret
’ for use with a
service that requres OAuth authorization.
cal
’
directive. Sets the display name of the calendar. Will be overridden if
the server provides a value.
-S
immediate synchronization flag when
the user clicks on the tdt(1) systray icon. Default is
‘false
’.
-
’ disables logging.
-l
, -L
and
-m
will display forthcoming events. Default is 14
days.
cal
’
directive. The password for access authorization on the remote server.
cal
’
directive. Boolean to mark the calendar as being read-only. It is set
automatically for calendars of type
‘ical
’ and when a read-only calendar
is detected in a CalDAV calendar collection otherwise it defaults to
‘false
’.
true
’. If set to
‘false
’, the time-to-go is prepended
to the notification text.
td
calendar storage directory.
Default is ~/.tdcals.
false
’.
cal
’
directive but note that it is generally not needed as the type is
determined automatically. Specifies the type of this calendar. If not
present, the type is inferred from the configuration as follows. If no URL
is configured, the calendar is type
‘local
’. If the URL is a
‘file://
’ file, the calendar type is
‘ical
’. If the URL contains the
string ‘.ics[/?]
’ or
‘.ical[/?]
’ the calendar type is
‘ical
’. Else the calendar is type
‘caldav
’. The type
‘caldav_cal
’ refers to a single
calendar within a CalDAV collection. This is set automatically for
calendars discovered from CalDAV servers but it might be used when
configuring other parameters for one CalDAV calendar individually.
cal
’
directive. Specifies the timezone of the calendar. Will be overridden if
the server provides a value.
cal
’
directive. Specifies the time in minutes between checks of calendar type
Fetch servers. If not specified, checks will be done at any/every
synchronization run. A good value is 1440 (daily) for calendars from
public sources or even 10080 (weekly) for calendars that are not expected
to change, such as national holiday calendars.
cal
’
directive. Specifies the URL of the remote calendar server. URLs can be of
type ‘file://
’,
‘http://
’ or
‘https://
’. (I.e., not
‘webdav:
’ or
‘caldav:
’)
For ical-type calendars, this will be the path that fetches the iCalendar data and will often contain ".ics" or ".ical" in the path.
For CalDAV-type calenadrs, this must be the path of the main CalDAV calendar collection for that service and not the principal, home set or individual calenadar URL. Examples:
https://yourserver.example.com/baikal/dav.php/
’https://dav.fruux.com/
’https://apidata.googleusercontent.com/caldav/v2/
’https://yourserver.example.com/nextcloud/remote.php/dav/
’https://yourserver.example.com/owncloud/remote.php/dav/
’https://yourserver.example.com/radicale/
’https://caldav.calendar.yahoo.com/
’Note that this is not the URL for the principal or for
the home-set for a specific calendar;
TDcal
will determine those automatically. Use
the top-level URL for the CalDAV calendar collection. And note
that, generally, the URL should not contain your username or
password.
For CalDAV calendars, the URL may contain an embedded username
and password in the form:
‘https://username:password@yourserver.example.com/blah/blahdav/
’
Using embedded passwords is not recommended, however, because it is
insecure as URLs are visible in transit and may also be logged, so
passwords given like this may be exposed. Use of separate
‘user
’ and
‘pass
’ directives is strongly
recommended instead.
† Many calendar services require that you log on to
create an application-specific password for access via the CalDAV
protocol. If this is needed, create one for your
TDcal
access and then use that password in your
calendar configuration.
‡ Google requires the use of the OAuth authorization
framework in order to access your private information on their service.
To use this, add a calendar configuration containing the URL and your
username to ~/.td configuration file and then
run the tdoauth(1) utility. This will open your
browser and request that you log on and authorize
TDcal
to access your calendar. Once you have
done so, your OAuth access credentials will be stored.
‡ Yahoo! Calendar's CalDAV implementation has some significant unusual aspects:
My Calendar
’ being sent
as .../My%2520Calendar/... instead of simply
.../My%20Calendar/....
TDcal
has work-around code to detect and
correct for this problem in both calendar and event URLs.FREQ=HOURLY
’ or smaller,
returning a ‘500 Server Error
’
when such events are uploaded. Repeating events only work with
‘FREQ=DAILY
’ or larger.cal
’
directive. The username for access authorization on the remote server.
false
’.
To define parameters for individual calendars in a CalDAV
collection, specify the calendar name as the CalDAV collection then a
"/" character then the calendar name. The collection must be
defined before the specific calendar in the configuration file. See the
example below where all-day alerts are set for the
‘contact_birthdays
’ calendar.
Because the .td configuration file contains passwords, it should be mode 0600.
# .td - configuration file for TDcal alerts 60 40 20 10 5 0 tddir ~/.local/share/tdcal lperiod 7 cal Local color #ebc807 cal MyNextCloud url https://my.example.com/nextcloud/remote.php/dav/ user foo pass mypassword cal MyNextCloud/contact_birthdays adalrts 17:00 10:00 oaprv google cli_id 123456789012-yaddayaddayadda.apps.googleusercontent.com cli_sec 123yadda456yadda789yadda cal MyGoogleCalendar url https://apidata.googleusercontent.com/caldav/v2/ user myname@gmail.com cal My Meetup Group url https://www.meetup.com/My-Club-Name/events/ical/123456789/0123456789abcdef0123456789abcdef01234567/My+Club+Longname/ updfreq 1440 cal Red Sox 2013 color #bc2e34 url http://mlb.mlb.com/soa/ical/schedule.ics?team_id=111&season=2013 updfreq 1440 cal US Holidays color #00e000 url https://www.thunderbird.net/media/caldata/USHolidays.ics updfreq 10080
This gives a default display of weeks as Monday-Friday followed by Saturday-Sunday weekend.
To display the same with a week display of Sunday-Saturday, add to the top of the file:
wesplit true
To display with a Sunday-Thursday week and Friday-Saturday weekend, add to the top:
wkstart 7
For the same Sunday-Thursday week and Friday-Saturday weekend displayed as Saturday-Friday, add to the top both:
wkstart 7 wesplit true
To display all event listings and also the daily grid in tdg(1) in 24-hour time even when your locale uses 12-hour am/pm notation, add to the top:
time24h true
Note that the week numbers change based on the week's start day which is determined by the wkstart and wesplit settings. Week 1 is defined as the week containing the first Thursday starting from your chosen display start day.
The downloaded iCalendar data for the US Holidays example, above, has no timezone information. This is so that it installs all-day events no matter which US timezone you are in. However, it also means that if you move to another timezone after installing the calendar and update your system timezone configuration, the holidays will then appear to span two days. It will automatically fix itself after the next update, but that means at your next configured poll and only then if the maintainers of the calendar have modified any events in the calendar. To fix without waiting, you can export and re-import the data:
td -c "US Holidays" -e | td -c "US Holidays" -i -
July 22, 2013 | FreeBSD 13.1-RELEASE-p2 |