Client for Microsoft Exchange Web Services (EWS) providing Django-style ORM interface for Exchange mailboxes.
—
Task management functionality for creating, updating, and tracking tasks and to-do items with support for due dates, priorities, and completion status.
class Task:
def __init__(self, account: Account = None, folder: Folder = None, **kwargs):
"""Create a new task."""
# Basic properties
subject: str
body: Body | HTMLBody
status: str # 'NotStarted', 'InProgress', 'Completed', 'WaitingOnOthers', 'Deferred'
percent_complete: int
# Dates
start_date: EWSDate
due_date: EWSDate
complete_date: EWSDate
# Assignment
owner: str
delegator: str
assigned_time: EWSDateTime
# Priority and importance
importance: str # 'Low', 'Normal', 'High'
# Recurrence
recurrence: Recurrence
is_recurring: bool
# Progress tracking
actual_work: int # Minutes
total_work: int # Minutes
# Categories
categories: list[str]
def save(self, update_fields: list = None):
"""Save the task."""
def delete(self, delete_type: str = 'MoveToDeletedItems'):
"""Delete the task."""
def mark_complete(self):
"""Mark the task as completed."""
def assign(self, assignee: Mailbox):
"""Assign the task to someone."""Usage example:
from exchangelib import Task, EWSDate
from datetime import date, timedelta
task = Task(
account=account,
folder=account.tasks,
subject='Complete project documentation',
body=Body('Write comprehensive documentation for the new feature.'),
status='NotStarted',
importance='High',
due_date=EWSDate.from_date(date.today() + timedelta(days=7)),
percent_complete=0
)
task.save()
# Later, update progress
task.percent_complete = 50
task.status = 'InProgress'
task.save()
# Mark as complete
task.mark_complete()Install with Tessl CLI
npx tessl i tessl/pypi-exchangelib