ics2todoist module

Functions and classes for converting iCalendar to CSV for Todoist.

class ics2todoist.BooleanOptionalAction(option_strings: Iterator[str], dest: str, default: Optional[Any] = None, type: Optional[Callable[[str], Any]] = None, choices: Optional[Sequence[str]] = None, required: bool = False, help: Optional[str] = None, metavar: Optional[str] = None)[source]

Bases: Action

format_usage() str[source]
class ics2todoist.Ics2TodoistConverter(*, bare_autolinks: bool = False, default_priority: Optional[int] = None, include_completed: Optional[bool] = None, text_is_markdown: bool = False)[source]

Bases: object

Converter from iCalendar values to Todoist CSV values.

calendar_to_todoist(cal: Calendar) Iterator[TodoistCsvRow][source]

Convert a icalendar.cal.Calendar to Todoist CSV rows.

Parameters

cal – iCalendar to convert.

Returns

Todoist CSV data for each VTODO component in cal.

category_to_label(category: str) str[source]

Convert an iCalendar category to a Todoist label.

Currently removes forbidden characters listed in the Introduction to Labels <https://todoist.com/help/articles/introduction-to-labels>.

Parameters

category – Category from iCalendar categories property to convert.

Returns

category sanitized for use as a Todoist label.

html_to_todoist(html: str) str[source]

Convert HTML to Todoist Markdown.

Todoist Markdown is described in Text formatting.

Parameters

html – HTML content to convert.

Returns

Markdown content suitable for Todoist.

ical_to_todoist(ical: str) Iterator[TodoistCsvRow][source]

Convert a string of iCalendar data to Todoist CSV rows.

Parameters

ical – iCalendar data to convert.

Returns

Todoist CSV data for each VTODO component in cal.

markdown_to_todoist(markdown: str) str[source]

Convert generic Markdown to Todoist Markdown.

Todoist Markdown is described in Text formatting.

This method currently removes some superfluous whitespace and strips angle brackets from autolinks if requested.

Parameters

markdown – Markdown content to convert.

Returns

Markdown content suitable for Todoist.

priority_to_priority(prio: int) Optional[int][source]

Convert an iCalendar priority to a Todoist priority.

See Introduction to: Priorities.

Parameters

prio – iCalendar priority (0-9) to convert.

Returns

Todoist priority corresponding to prio, or None if prio is 0.

text_to_todoist(text: str) str[source]

Convert text to Todoist Markdown.

Todoist Markdown is described in Text formatting.

This method currently adds backslashes to escape text which would otherwise be interpreted as Markdown formatting.

Parameters

text – Text content to convert.

Returns

Markdown content suitable for Todoist.

todo_to_todoist(todo: Todo) TodoistCsvRow[source]

Convert a icalendar.cal.Todo to Todoist CSV.

Parameters

todo – iCalendar VTODO component to convert.

Returns

A row of Todoist CSV data.

vtext_to_todoist(vtext: vText) str[source]

Convert icalendar.prop.vText to Todoist Markdown.

Parameters

vtext – iCalendar VTEXT component to convert.

Returns

Markdown content suitable for Todoist.

class ics2todoist.TodoistCsvRow[source]

Bases: object

A row of Todoist CSV data.

Columns are described in How to format your CSV file so you can import it into Todoist.

author: Optional[str]
content: Optional[str]
date: Optional[str | date | datetime]
date_lang: Optional[str]
description: Optional[str]
indent: Optional[int]
priority: Optional[int]
responsible: Optional[str]
timezone: Optional[str]
type
ics2todoist.ics_to_todoist(icspaths: Iterator[str], todoist: SupportsWrite[str], *, bare_autolinks: bool = False, default_priority: Optional[int] = None, include_completed: Optional[bool] = False, text_is_markdown: bool = False) None[source]

Convert iCalendar files to Todoist CSV.

Parameters
  • icspaths – Paths of iCalendar files to convert.

  • todoist – Writable file for Todoist CSV data.

  • bare_autolinks – Don’t surround URLs with angle brackets if Todoist will recognize them as links automatically.

  • default_priority – Priority of Todoist tasks when not specified by iCalendar data.

  • include_completed – Include VTODOs which have been completed in CSV.

  • text_is_markdown – Treat iCalendar text as being in Markdown format.

ics2todoist.main(argv: Sequence[str] = ['/home/docs/checkouts/readthedocs.org/user_builds/ics2todoist/envs/latest/lib/python3.7/site-packages/sphinx/__main__.py', '-T', '-E', '-b', 'html', '-d', '_build/doctrees', '-D', 'language=en', '.', '_build/html']) int[source]

Entry point for packagename command-line tool.

Parameters

argv – command-line arguments

Returns

exit code

ics2todoist.write_csv_header(csvwriter: _csv._writer) None[source]

Write the CSV header line to a given CSV writer.

Parameters

csvwriter – CSV writer to which the header will be written.