Class: Taskwarrior::Calendar
- Inherits:
-
Object
- Object
- Taskwarrior::Calendar
- Defined in:
- lib/taskwarrior/calendar.rb,
lib/taskwarrior/calendar/app.rb,
lib/taskwarrior/calendar/event.rb,
lib/taskwarrior/calendar/version.rb,
lib/taskwarrior/calendar/app/base.rb,
lib/taskwarrior/calendar/timezone.rb,
lib/taskwarrior/calendar/app/convert.rb
Overview
Convert taskwarrior tasks to calendar events.
calendar = Taskwarrior::Calendar.new(filter: 'status:pending', alarm: false)
calendar.publish(filename: '~/tasks.ics')
Task due and optional scheduled dates if available are exported as calendar events.
By default tasks are filtered by status:pending and all events are
appointed with an alarm 15 minutes before the event date. This can be
configured with the filter and alarm options. For further filter details see
https://taskwarrior.org/docs/filter. All events are exported in the
timezone of the system. This can be configured with the TZ environment
variable.
Defined Under Namespace
Constant Summary collapse
- VERSION =
'1.0.3'
Instance Method Summary collapse
-
#initialize(filter: 'status:pending', alarm: true) ⇒ Calendar
constructor
Initialize a new taskwarrior calendar object.
-
#publish(filename: 'taskwarrior.ics') ⇒ Object
Publish calendar ICS to a file, default
taskwarrior.ics. -
#to_ical ⇒ Object
Return the calendar as ICS string.
-
#to_object ⇒ Object
Return the Icalendar::Calendar object.
Methods included from Event
Methods included from Timezone
Constructor Details
#initialize(filter: 'status:pending', alarm: true) ⇒ Calendar
Initialize a new taskwarrior calendar object. Tasks are filtered by
status:pending and all calendar events are appointed with an alarm.
This can be configured with the filter and alarm options.
On failure an error is raised.
38 39 40 41 |
# File 'lib/taskwarrior/calendar.rb', line 38 def initialize(filter: 'status:pending', alarm: true) tasks(filter:) calendar(alarm:) end |
Instance Method Details
#publish(filename: 'taskwarrior.ics') ⇒ Object
Publish calendar ICS to a file, default taskwarrior.ics. This can be
configured with the filename option.
58 59 60 |
# File 'lib/taskwarrior/calendar.rb', line 58 def publish(filename: 'taskwarrior.ics') File.write(filename, to_ical) end |
#to_ical ⇒ Object
Return the calendar as ICS string.
51 52 53 |
# File 'lib/taskwarrior/calendar.rb', line 51 def to_ical @calendar.to_ical end |
#to_object ⇒ Object
Return the Icalendar::Calendar object.
45 46 47 |
# File 'lib/taskwarrior/calendar.rb', line 45 def to_object @calendar end |