use ezcal::vcard::{Address, Contact, StructuredName};
fn main() {
let card = Contact::new()
.full_name("Jane Doe")
.structured_name(
StructuredName::new("Doe", "Jane")
.with_prefix("Dr.")
.with_additional("Marie"),
)
.email_typed("jane@acme.com", vec!["WORK".to_string()])
.email_typed("jane.doe@gmail.com", vec!["HOME".to_string()])
.phone_typed("+1-555-0123", vec!["WORK".to_string(), "VOICE".to_string()])
.phone_typed("+1-555-0456", vec!["HOME".to_string()])
.organization("Acme Corp")
.title("Software Engineer")
.role("Backend Team Lead")
.note("Met at RustConf 2025")
.url("https://jane.example.com")
.address_typed(
Address::new()
.street("123 Main St")
.city("San Francisco")
.region("CA")
.postal_code("94105")
.country("USA"),
vec!["WORK".to_string()],
None,
)
.birthday("19900115")
.build();
println!("{}", card);
}