public static void SyncEvents(Event pattern, IEnumerable<Event> events, EventList list, EventListManager manager)
 {
     Message message = Message.Parse(pattern, "event:sync");
      var deleteContext = new SyncEventContext(pattern, events, list,
                                           manager);
      Dispatcher.Dispatch(message, deleteContext);
 }
        protected virtual void Execute(SyncEventContext context)
        {
            foreach (Event ev in context.Events)
             {
            ev.Attributes = context.Pattern.Attributes;
            ev.Description = context.Pattern.Description;
            ev.EndTime = context.Pattern.EndTime;
            ev.Location = context.Pattern.Location;
            ev.Name = context.Pattern.Name;
            ev.ScheduleID = context.Pattern.ScheduleID;
            ev.StartTime = context.Pattern.StartTime;
            ev.Title = context.Pattern.Title;

            ev.Save();

            if (context.EventList.ID != context.EventListManager.GetCalendar(ev).ID)
            {
               context.EventList.MoveEvent(ev);
            }

            PublishUtil.Publishing(ev.GetTargetItem(), true, false);
             }
        }