Trabajando con Citas

Cargar y Guardar Cita en Formato ICS

La clase Appointment en la API de Aspose.Email se puede usar para cargar una cita en formato ICS, así como para crear una nueva cita y guardarla en disco en formato ICS. En este artículo, primero creamos una cita y la guardamos en disco en formato ICS, y luego la cargamos.

Crear Cita y Guardar en Disco en Formato ICS

Los siguientes pasos son necesarios para crear una cita y guardarla en formato ICS.

  1. Crear una instancia de la clase Appointment y inicializarla con este constructor.
  2. Pasar los siguientes argumentos en el constructor anterior:
    1. Asistentes
    2. Descripción
    3. Fecha de Finalización
    4. Ubicación
    5. Organizador
    6. Fecha de Inicio
    7. Resumen
  3. Llamar al método Save() y especificar el nombre del archivo y el formato en los argumentos.

La cita puede abrirse en Microsoft Outlook o cualquier programa que pueda cargar un archivo ICS. Si el archivo se abre en Microsoft Outlook, automáticamente agrega la cita en el calendario de Outlook.

Los siguientes fragmentos de código te muestran cómo crear y guardar una cita en disco en formato ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Create Appointment instance
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees);
app.summary = "Release Meetting";
app.description = "Discuss for the next release"
app.save(dataDir + "AppointmentInICSFormat_out.ics", AppointmentSaveFormat.ICS)

Cargar Cita en Formato ICS

Para cargar una cita en formato ICS, se requieren los siguientes pasos:

  1. Crear una instancia de la clase Appointment.
  2. Llamar al método Load() proporcionando la ruta del archivo ICS.
  3. Leer cualquier propiedad para obtener información de la cita (archivo ICS).

Los siguientes fragmentos de código te muestran cómo cargar una cita en formato ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Load Appointment instance
loadedAppointment = Appointment.load(dataDir + "AppointmentInICSFormat_out.ics")
print("Summary: " + loadedAppointment.summary)
print("Location: " + loadedAppointment.location)
print("Description: " + loadedAppointment.description)
print("Start date: " + str(loadedAppointment.start_date))
print("End date: " + str(loadedAppointment.end_date))
print("Organizer: " + loadedAppointment.organizer.address)
print("Attendees: " + loadedAppointment.attendees[0].address)

Leer Múltiples Eventos desde un Archivo ICS

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Load Appointment instance
reader = CalendarReader(dataDir + "US-Holidays.ics")
appointments = []
while reader.next_event():
appointments.append(reader.current)
print ("Total Appointments: " + str(len(appointments)))

Escribir Múltiples Eventos en un Archivo ICS

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
saveOptions = IcsSaveOptions()
saveOptions.action = AppointmentAction.CREATE
writer = CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions)
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
for i in range(10):
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees)
app.description = "Test body " + str(i)
app.summary = "Test summary:" + str(i)
writer.write(app)

Crear una Solicitud de Cita Borrador

Se mostró en nuestros artículos anteriores cómo crear y guardar una cita en formato ICS. A menudo es necesario crear una solicitud de cita en modo Borrador, de modo que se añada la información básica y luego el mismo Borrador de cita se reenvíe a otros usuarios para los cambios necesarios según los usuarios individuales. Para guardar una cita en modo Borrador, la propiedad Method de la clase Appointment debe establecerse en Publish. El siguiente fragmento de código te muestra cómo crear una solicitud de cita borrador.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
#Create Appointment instance
attendees = MailAddressCollection()
attendees.append("attendee@domain.com")
app = Appointment("Room 112", dt.datetime(2018, 5, 27, 22, 12, 11), dt.date(2018, 5, 28), "from@domain.com", attendees);
app.summary = "Release Meetting";
app.description = "Discuss for the next release"
app.method_type = AppointmentMethodType.PUBLISH
message = MailMessage("sender@domain.com", "recipient@domain.com", "", "")
message.add_alternate_view(app.request_apointment())
msg = MapiMessage.from_mail_message(message)
# Save the appointment as draft.
msg.save("DraftAppointmentRequest_out.msg")

Creación de Cita Borrador desde Texto

El siguiente fragmento de código te muestra cómo crear una cita borrador desde Texto.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
ical = """BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:-//Aspose Ltd//iCalender Builder (v3.0)//EN
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;CN=test@gmail.com:mailto:test@gmail.com
DTSTART:20130220T171439
DTEND:20130220T174439
DTSTAMP:20130220T161439Z
END:VEVENT
END:VCALENDAR"""
sender = "test@gmail.com"
recipient = "test@email.com"
message = MailMessage(sender, recipient, "", "")
av = AlternateView.create_alternate_view_from_string(ical, ContentType("text/calendar"))
message.alternate_views.append(av)
msg = MapiMessage.from_mail_message(message)
msg.save(dataDir + "draft_out.msg")

Establecer el Estado de los Asistentes a la Cita

Aspose.Email para la API de .NET te permite establecer el estado de los asistentes a la cita mientras formulas un mensaje de respuesta. Esto añade la propiedad PARTSTAT al archivo ICS.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
location = "Room 5"
startDate = dt.datetime(2011, 12, 10, 10, 12, 11)
endDate = dt.date(2012, 11, 13)
organizer = ae.MailAddress("aaa@amail.com", "Organizer")
attendees = ae.MailAddressCollection()
attendee1 = ae.MailAddress("bbb@bmail.com", "First attendee")
attendee2 = ae.MailAddress("ccc@cmail.com", "Second attendee")
attendee1.participation_status = ae.ParticipationStatus.ACCEPTED
attendee2.participation_status = ae.ParticipationStatus.DECLINED
attendees.append(attendee1)
attendees.append(attendee2)
target2 = Appointment(location, startDate, endDate, organizer, attendees)