model_dump() includes None values for optional RecurrenceRule fields. When serialized to JSON, these become explicit nulls (e.g. "weekday": null). The recurrence service then does int(None) which raises TypeError. Fix: strip None values when serializing rule to JSON, and add defensive None handling in recurrence service for all rule.get() calls. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>